[java] Mockito를 사용하여 특정 메소드 호출 시 전달된 인자들로 다른 메소드를 호출한 횟수를 확인하는 방법은?
Mockito는 Java에서 테스트하기 쉬운 코드를 작성할 수 있도록 도와주는 mocking 프레임워크입니다. Mockito의 ArgumentCaptor를 사용하면 특정 메소드 호출 시 전달된 인자들을 캡처하여 가져올 수 있습니다. 이 기능을 활용하여 다른 메소드 호출 횟수를 확인할 수 있습니다.
아래는 Mockito를 사용하여 특정 메소드 호출 시 전달된 인자들로 다른 메소드를 호출한 횟수를 확인하는 예시 코드입니다.
import static org.mockito.Mockito.*;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
public class ExampleTest {
@Test
public void testMethod() {
// Mock 객체 생성
YourClass yourClassMock = mock(YourClass.class);
// ArgumentCaptor 생성
ArgumentCaptor<YourObject> argumentCaptor = ArgumentCaptor.forClass(YourObject.class);
// 특정 메소드 호출
yourClassMock.yourMethod(argumentCaptor.capture());
// 인자들로 다른 메소드 호출한 횟수 확인
verify(yourClassMock, times(1)).anotherMethod(argumentCaptor.getValue());
}
}
위의 코드에서 YourClass
는 테스트해야 할 클래스이고, yourMethod
는 테스트 대상 메소드입니다. anotherMethod
는 yourMethod
내에서 호출되는 메소드로서, 특정 인자 값을 사용합니다. ArgumentCaptor
를 사용하여 yourMethod
호출 시 전달된 인자들을 캡처한 뒤, anotherMethod
호출 횟수를 확인합니다. 위의 예시에서는 anotherMethod
가 1회 호출된 것이 확인되므로, 테스트가 통과할 것입니다.
Mockito를 사용하는 방법에 대한 자세한 내용은 Mockito 공식 문서를 참고하시길 추천합니다. (https://site.mockito.org/)
반드시 목 객체의 생성, 메소드 호출, 캡처한 인자 값 확인, 메소드 호출 횟수 확인 등의 단계를 정확히 구현해야 올바른 결과를 얻을 수 있습니다.