我正在测试一个返回类回调的交互器。 这是代码-
主持人
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");
}
}
交互回调
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")。也许您在某处混淆了 OK 和 NO?
关于java - Android mockito 模拟回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53416564/