มีวิธีทดสอบวิธีจากสมาชิกส่วนตัวด้วย 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();
จะขัดขวางสมาชิกส่วนตัวด้วยสิ่งที่คุณสามารถสอดแนมได้