[java] Mockito를 사용하여 특정 메소드에 전달된 인자들 중 특정 값이 존재하는지 확인하는 방법은?

아래는 Mockito를 사용하여 ArgumentCaptor를 적용하는 예시 코드입니다.

import org.mockito.ArgumentCaptor;
import static org.mockito.Mockito.*;

// ...

// ArgumentCaptor를 생성합니다.
ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);

// Mock 객체를 생성합니다.
SomeObject mockObject = mock(SomeObject.class);

// Mock 객체의 메소드를 호출합니다.
mockObject.someMethod("value1", "value2", "value3");

// ArgumentCaptor를 사용하여 특정 인자 값을 캡처합니다.
verify(mockObject).someMethod(captor.capture());

// 캡처한 값을 가져옵니다.
String capturedValue = captor.getValue();

// 캡처한 값과 원하는 값("value2")을 비교하여 확인합니다.
assertEquals("value2", capturedValue);

위의 예시 코드에서는 SomeObject라는 클래스의 someMethod 메소드가 호출될 때 전달되는 첫 번째 인자 값을 캡처합니다. 그리고 캡처한 값과 “value2”를 비교하여 확인합니다.

ArgumentCaptor를 사용하면 메소드 호출 시 전달된 여러 인자 중에서 특정 값을 확인할 수 있으므로 테스트 코드 작성에 유용하게 사용할 수 있습니다.

자세한 내용은 Mockito 공식 문서를 참고하시기 바랍니다.

참고 문서: