Mock Stubbing 이용한 테스트 구현 시 동일 메서드에 대해 조건부 처리 방법
jaejeong1 opened this issue · comments
말씀대로 private 메소드는 바깥에서 보이지 않기때문에 쉽게 테스트하기 어렵습니다.
다만, 최소 하나의 특정 메서드에서는 호출해서 사용하고 있을것이므로 그 메소드를 테스트할 때 겸사겸사 같이하면 됩니다.
위 JOIN 메소드를 제가 테스트한다면 아래를 검증해볼 것 같네요.
- 파라미터 member를 member.Repository.findByName에 제대로 전달하고 있는지.
- findMembers.isEmtpry()가 false일 때 IllegalStateException이 발생하는지.
- findMembers.isEmtpry()가 true일 때 예외가 발생하지 않는지
- memberRepository.save() 가 1번 호출되는지.
- join의 메소드의 응답이 member.getId()를 호출한 결과인지.
등등이요~
위 내용을 보시면 private 함수가 하는 일까지 포함해서 테스트하는걸 보실 수 있으실거에요.
= 테스트의 대상은 public 메소드라고 생각해주셔도 저는 괜찮다 생각합니다~