[java] PowerMock에서의 메서드 호출 횟수 확인

PowerMock이란?

PowerMock은 자바 개발자들이 단위 테스트 작성 시 테스트 불가능한 코드를 테스트하기 위해 사용되는 도구입니다. PowerMock은 Mockito와 EasyMock과 같은 프레임워크와 함께 사용될 수 있으며, 특히 정적 메서드나 final 클래스와 같이 일반적으로 테스트하기 어려운 코드들을 목 객체(Mock)를 사용하여 테스트할 수 있도록 합니다.

메서드 호출 횟수 확인하기

PowerMock을 사용하여 메서드 호출 횟수를 확인하는 것은 테스트 중 반복 실행되는 메서드가 올바르게 호출되고 있는지 확인하는 데 매우 유용합니다. 일반적인 Mock 객체와는 달리 PowerMock을 사용하면 정적 메서드나 final 클래스의 메서드 호출 횟수를 확인할 수 있습니다.

메서드 호출 횟수를 확인하기 위해서는 PowerMockito 클래스에 제공되는 verifyStatic, verifyPrivate, verifyNew 등의 메서드를 사용할 수 있습니다. 이들 메서드를 사용하여 호출 횟수를 확인할 수 있으며, 횟수에 대한 조건도 지정할 수 있습니다.

예제 코드

다음은 PowerMock을 사용하여 정적 메서드 호출 횟수를 확인하는 예제입니다.

import static org.powermock.api.mockito.PowerMockito.*;

public class MyClassTest {
  
  @Test
  public void myTest() throws Exception {
    mockStatic(MyClass.class);
    
    MyClass.method();
    MyClass.method();
    MyClass.method();
    
    verifyStatic(MyClass.class, times(3));
    MyClass.method();
  }
}

위 예제에서는 MyClass 클래스의 메서드인 method를 세 번 호출한 후, verifyStatic 메서드를 사용하여 호출 횟수가 3번인지 확인합니다.

참고 자료