Closed vectorch9 closed 2 years ago
@seonpilKim
BlockService
내에 다음과 같은 코드가 있습니다.
if (member.getId().equals(blockMember.getId())) {
throw new BlockMyselfFailException();
}
원랜 다음과 같이 단순히 mocking을 하여 코딩을 하고 있었는데, 생각해보니 member.getId()를 호출하는 경우에 문제가 생기더라구요. Entity의 Id는 직접 수정 할 수 없어서 어떻게 처리할지 고민중인데 어떤 방법이 좋을까요? 떠오르는게 리플렉션밖에 없는데 리플렉션 사용이 적절한 상황일지 모르겠습니다.
// given
final long memberId = 1L;
final long targetId = 2L;
final Member member = MemberUtils.newInstance();
final Member target = MemberUtils.newInstance();
given(authUtil.getLoginMember()).willReturn(member);
given(memberRepository.findById(memberId)).willReturn(Optional.of(member));
given(memberRepository.findById(targetId)).willReturn(Optional.of(target));
given(memberRepository.findByUsername(target.getUsername())).willReturn(Optional.of(target));
ReflectionTestUtils.setField(member, "id", memberId);
그럴 때는 이런식으로 많이 사용하는 것으로 알고 있습니다.
ReflectionTestUtils.setField(member, "id", memberId);
그럴 때는 이런식으로 많이 사용하는 것으로 알고 있습니다.
음.. 그냥 리플렉션을 쓰는군요
Feature Description
Todo list