[java] Mockito를 사용하여 객체의 private 메소드를 테스트하면서 리턴된 값의 변화를 확인하는 방법은?
  1. PowerMockito와 Whitebox를 사용하여 private 메소드를 호출합니다. PowerMockito는 Mockito 확장 라이브러리로 private 메소드 호출을 지원합니다.

예를 들어, MyClass라는 클래스에 private 메소드인 privateMethod()가 있다고 가정해봅시다.

public class MyClass {
    private int privateMethod() {
        // Some logic here
        return 10;
    }

    public int publicMethod() {
        int result = privateMethod();
        // Some other logic here
        return result;
    }
}
  1. Mockito를 통해 MyClass 객체를 mocking합니다.
MyClass myClassMock = Mockito.mock(MyClass.class);
  1. PowerMockito를 사용하여 MyClass의 private 메소드를 호출하고 리턴값을 확인하는 코드를 작성합니다.
PowerMockito.when(myClassMock, "privateMethod").thenReturn(20);

위의 예제에서는 privateMethod()가 항상 20을 리턴하도록 설정했습니다.

  1. 테스트에서 MyClass의 publicMethod()를 호출하고 리턴값을 확인합니다.
int returnValue = myClassMock.publicMethod();
assertEquals(20, returnValue);

위의 코드에서는 리턴값이 20인지 확인합니다.

이렇게 Mockito와 PowerMockito를 사용하여 객체의 private 메소드를 호출하고 리턴값의 변화를 확인할 수 있습니다.

참고자료: