我有一个带有publish()方法的类A。在该方法中,将调用另一个方法,并将A类对象作为参数传递给B类。
public class A {
public void publish() {
ClassB classb = new ClassB();
classb.sendRequest(this)
}
}
问题是,当调用publish()方法时,如何使用Mockito验证sendRequest
方法是否被调用?我是Mockito的新手。
答案 0 :(得分:6)
如果在方法中创建新的ClassB实例,则不能使用Mockito。
您应该重构publish()以将ClassB作为参数,然后可以发送Mockito模拟而不是真实的ClassB,并在其上进行验证。
像这样:
public class A {
public void publish(ClassB classb){
classb.sendRequest(this)
}
}
在测试中:
ClassB mockClassB = mock(ClassB.class);
A a = new A();
a.publish(mockClassB);
verify(mockClassB, times(1)).sendRequest(any());