[java] Mockito를 사용하여 특정 메소드를 호출하면 다른 메소드도 반복해서 호출되는지 확인하는 방법은?

다음은 Mockito를 사용하여 메소드 호출을 추적하고 확인하는 예제 코드입니다.

import org.mockito.Mockito;

// 테스트할 클래스
public class MyClass {
    public void method1() {
        method2();
    }
    
    public void method2() {
        // 이 메소드를 테스트하고 싶다면?
    }
}

// 테스트 클래스
public class MyClassTest {
    @Test
    public void testMethod1() {
        // Mock 객체 생성
        MyClass myClass = Mockito.mock(MyClass.class);
        
        // method1을 호출하면 method2도 호출되는지 확인
        myClass.method1();
        
        // method2 메소드가 한 번 호출되었는지 확인
        Mockito.verify(myClass, Mockito.times(1)).method2();
    }
}

위의 예제 코드에서는 MyClass를 테스트하고 싶은 경우 MyClass의 Mock 객체를 생성하여 사용합니다. 그리고 method1을 호출하면 method2도 호출되는지 확인하기 위해 verify 메소드를 사용합니다. verfiy 메소드는 myClass 객체의 method2가 한 번 호출되었는지를 확인합니다.

Mockito는 테스트 더블에 대한 다양한 기능을 제공하므로 자세한 내용은 Mockito의 공식 문서를 참조하시기 바랍니다.

참고 문서: Mockito 공식 문서