[java] Mockito를 사용하여 특정 메소드에 전달된 인자들로 다른 메소드를 호출했을 때 특정 메소드가 호출되는지 확인하는 방법은?

먼저 Mockito를 사용하기 위해 Mockito 라이브러리를 프로젝트에 추가해야 합니다. Gradle에서는 다음과 같이 dependencies에 추가합니다.

testImplementation 'org.mockito:mockito-core:3.x.x'

이제 Mockito를 사용하여 특정 메소드가 호출되었는지 확인해보겠습니다.

import static org.mockito.Mockito.*;

public class MyClass {
    public void methodA(String arg1, int arg2) {
        // some logic
        methodB(arg1, arg2);
    }

    public void methodB(String arg1, int arg2) {
        // some logic
    }
}

// 테스트 코드
import org.junit.Test;

public class MyClassTest {
    @Test
    public void testMethodACallsMethodB() {
        // Mock 객체 생성
        MyClass myClass = mock(MyClass.class);

        // methodA 호출
        myClass.methodA("argument1", 123);

        // methodB가 호출되는지 확인
        verify(myClass, times(1)).methodB("argument1", 123);
    }
}

위의 예시에서는 MyClass의 methodA가 methodB를 호출하는지 확인합니다. 이를 위해 MyClass를 Mock 객체로 만들고, methodA를 호출한 후 methodB가 호출되었는지 verify를 통해 확인합니다.

verify의 첫 번째 매개변수로는 검증할 Mock 객체를 전달하고, 두 번째 매개변수로는 검증할 메소드를 전달합니다. times 메소드를 통해 호출 횟수를 지정할 수 있습니다.

이제 Mockito를 사용하여 특정 메소드가 호출되는지 확인하는 방법에 대해 알게 되었습니다. 추가적인 정보는 Mockito 공식 문서를 참고하시기 바랍니다.

참고: Mockito 공식 문서