단위 테스트 중, 메소드에 들어가는 인자 값 중간에 가로채서 검증하고 싶을 때 사용하는 Mockito의 클래스
메소드 호출에 전달된 객체를 추출할 수 있다.
capture() 메소드 : 특정 메소드에 passed된 argument를 얻을 수 있음.
ArgumentCaptor<Settlement> settlementCaptor = ArgumentCaptor.forClass(Settlement.class);
// verify 지우면 밑에도 실행 안됨.
// verify에 적힌 메서드의 인자로 들어갔는지 테스트 하는것
verify(settlementRepository, times(expectedSettlements.size())).save(settlementCaptor.capture());
List<Settlement> actualSettlements = settlementCaptor.getAllValues();
for (Settlement settlement : actualSettlements) {
System.out.println("actual settlement = " + settlement);
}
해당 코드에서는 save() 메소드에 들어간 인자를 가로채서 검증.
getAllValues()를 통해 실제 값 확인 가능.