我正在测试一个将回调返回类的交互器。
这是代码-

主持人

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”)。也许您在某处混淆了好与否?

10-07 19:49
查看更多