[java] Mockito를 사용하여 특정 메소드에 전달된 인자들로 다른 메소드를 호출했을 때 인자 값이 변경되었는지 확인하는 방법은?
다른 메소드가 호출될 때 전달된 인자 값이 변경되었는지 확인하기 위해서는 ArgumentCaptor
를 사용할 수 있습니다. ArgumentCaptor
는 메소드에 전달된 인자를 캡처하여 확인할 수 있는 기능을 제공합니다.
아래는 예시 코드입니다.
// 특정 클래스의 메소드 모킹
SomeClass someClass = Mockito.mock(SomeClass.class);
// 인자 값을 캡처하기 위한 ArgumentCaptor 생성
ArgumentCaptor<SomeObject> captor = ArgumentCaptor.forClass(SomeObject.class);
// 메소드 호출 시 인자 값이 변경되는지 확인
someClass.someMethod(arg1, arg2);
// 다른 메소드 호출 시 캡처한 인자 값 검증
Mockito.verify(someClass).anotherMethod(captor.capture());
// 캡처한 인자 값 가져오기
SomeObject capturedArgument = captor.getValue();
// 인자 값 검증
assertThat(capturedArgument.getProperty()).isEqualTo(expectedValue);
위의 코드에서 SomeClass
는 모킹한 클래스이고, someMethod
는 특정 메소드입니다. ArgumentCaptor
를 사용하여 anotherMethod
가 호출될 때 전달된 SomeObject
인자 값을 캡처하고, 캡처한 값과 예상값을 비교하여 인자 값이 변경되었는지 확인할 수 있습니다.
더 자세한 내용은 Mockito의 공식 문서를 참고하여 확인할 수 있습니다. Mockito Documentation