我正在测试一个将回调返回类的交互器。
这是代码-
主持人
public MyPresenter() implements MyInteractorCallback {
MyInteractorImpl interactorImpl = new MyInteractorImpl(this);
interactorImpl.doSomething(obj);
@Override
public void statusChange(String status) {
//.....
}
}
交互器
public MyInteractorImpl() {
MyInteractorCallback callback;
public MyInteractorImpl(final MyInteractorCallback callback) {
this.callback = callback;
}
public void doSomething(MyObj obj) {
callback.statusChange("OK");
//....
callback.statusChange("NO");
}
}
InteractorCallback
Interface MyInteractorCallback {
void statusChange(String status);
}
我的测试
@Test
public void testMyObj() {
obj = new MyObj();
callback = mock(MyInteractorCallback.class);
MyInteractorImpl impl = new MyInteractorImpl(callback);
impl.doSomething(obj);
verify(callback).statusChange("NO");
}
这给我抛出一个错误-
Wanted but not invoked:
callback.statusChange(
OK
);
However, there was exactly 2 interaction with this mock:
这个错误到底是什么?我该如何摆脱呢?
最佳答案
该错误应表示您在测试代码中的某处运行了verify(callback).statuschange(“ OK”)。也许您在某处混淆了好与否?