[java] Mockito를 사용하여 메소드 실행 시간을 측정하는 방법은?

테스트 코드 작성 시에 메소드의 실행 시간을 측정하고 싶은 경우 Mockito 라이브러리를 사용할 수 있습니다. Mockito는 Java에서 유닛 테스트를 위한 모의 객체를 생성하고, 메소드 호출에 대한 검증과 실행 시간 측정 등을 수행할 수 있는 기능을 제공합니다.

다음은 Mockito를 사용하여 메소드 실행 시간을 측정하는 예제 코드입니다:

import org.junit.Test;
import org.mockito.Mockito;

public class MyServiceTest {

    @Test
    public void testMethodExecutionTime() {
        // Mock 객체 생성
        MyService myService = Mockito.mock(MyService.class);

        // 특정 메소드 실행 시간 측정
        long startTime = System.currentTimeMillis();
        myService.someMethod();
        long endTime = System.currentTimeMillis();

        // 실행 시간 계산
        long executionTime = endTime - startTime;

        // 실행 시간 확인
        System.out.println("Execution time: " + executionTime + "ms");

        // 실행 시간에 대한 검증 등 추가적인 로직 수행 가능
        Mockito.verify(myService).someMethod();
    }
}

위의 예제 코드에서는 MyService 클래스의 someMethod() 메소드 실행 시간을 측정합니다. Mockito.mock() 메소드를 사용하여 MyService의 모의 객체를 생성한 뒤, 메소드를 호출하고 시작 시간과 종료 시간을 기록하여 실행 시간을 계산합니다. 실행 시간을 콘솔에 출력한 후, 추가적인 검증이 필요한 경우 Mockito.verify() 메소드를 사용할 수 있습니다.

테스트 코드 작성 시에는 Mockito를 사용하여 메소드 실행 시간을 측정하면서 성능에 미치는 영향을 최소화하도록 주의해야 합니다. 불필요한 실행 시간 측정은 테스트 결과의 신뢰성을 낮출 수 있으므로, 실행 시간 측정의 대상이 되는 메소드를 신중하게 선택해야 합니다.

참고문헌: