실제로 Mockito를 사용하여 비공개 멤버의 메서드를 테스트하는 방법이 있습니다. 다음과 같은 수업이 있다고 가정 해 보겠습니다.
public class A {
private SomeOtherClass someOtherClass;
A() {
someOtherClass = new SomeOtherClass();
}
public void method(boolean b){
if (b == true)
someOtherClass.method1();
else
someOtherClass.method2();
}
}
public class SomeOtherClass {
public void method1() {}
public void method2() {}
}
테스트하려면 a.method
에서 메서드를 호출 SomeOtherClass
하려면 다음과 같이 작성할 수 있습니다.
@Test
public void testPrivateMemberMethodCalled() {
A a = new A();
SomeOtherClass someOtherClass = Mockito.spy(new SomeOtherClass());
ReflectionTestUtils.setField( a, "someOtherClass", someOtherClass);
a.method( true );
Mockito.verify( someOtherClass, Mockito.times( 1 ) ).method1();
}
ReflectionTestUtils.setField();
당신이 감시 할 수있는 무언가로 비공개 회원을 스텁 할 것입니다.