ArgumentCaptor

Haechan Kim·2024년 2월 19일
0

Spring

목록 보기
59/68

ArgumentCaptor

단위 테스트 중, 메소드에 들어가는 인자 값 중간에 가로채서 검증하고 싶을 때 사용하는 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()를 통해 실제 값 확인 가능.

https://www.youtube.com/watch?v=fQMRWvgoaCw

0개의 댓글