테스트 코드 작성하시면서 기존 코드 중에 return값이 없는 void 함수나 save, delete 처럼 해당 로직이 제대로 동작했는지 확인을 어떻게 해야 하는지 고민을 하는 사람이 있을 것 같다.
이때, Mockito에서 verify 라는 함수를 제공하여 해당 로직이 동작했는지 확인 할 수 있다.
//using mock
mockedList.add("once");
mockedList.add("twice");
mockedList.add("twice");
mockedList.add("three times");
mockedList.add("three times");
mockedList.add("three times");
//following two verifications work exactly the same - times(1) is used by default
verify(mockedList).add("once");
verify(mockedList, times(1)).add("once");
//exact number of invocations verification
verify(mockedList, times(2)).add("twice");
verify(mockedList, times(3)).add("three times");
//verification using never(). never() is an alias to times(0)
verify(mockedList, never()).add("never happened");
//verification using atLeast()/atMost()
verify(mockedList, atMostOnce()).add("once");
verify(mockedList, atLeastOnce()).add("three times");
verify(mockedList, atLeast(2)).add("three times");
verify(mockedList, atMost(5)).add("three times");
//using mock
// given
List<TestDto> oldMockList = Collections.emptyList();
List<TestDto> newMockList = Arrays.asList(
TestDto.builder().id(1L).build(),
TestDto.builder().id(2L).build());
// when
... 서비스 로직 실행
// then
verify(specificMockedRepository, never()).delete(any()); // save 로직이 실행 되지 않음
verify(specificMockedRepository).save(newMockList.get(0)); // 해당 delete 로직 실행
verify(specificMockedRepository).save(newMockList.get(1)); // 해당 delete 로직 실행
verify(specificMockedRepository, atLeast(2)).delete(any()); // 해당 delete 로직 최소 한번 이상 실행
안녕하세요! 네이버블로그에 작성하신 베어로보틱스에서의 ICT 인턴십 글들을 보고 넘어왔습니다 :D 몇가지 여쭤보고 싶은 점이 있는데, 개인적으로 연락가능한 링크드인 계정이나 메일주소 알려주실 수 있을까요?