java - Android mockito 模拟回调

标签 java android

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

主持人

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/

相关文章:

java - 抑制消息 "Java was started but returned exit code"

android - 如果没有 Internet 连接,HttpURLConnection getResponseCode() 不会返回

android - Intentservice 不调用 runnable

Java netty AbstractChannelHandlerContext invokeExceptionCaught

java - HashMap 中的部分搜索

java - JAXB Marshall 泛型类型的 Map 结构

android - 在android中从后台捕获应用程序的返回

java - maven默认使用的插件有哪些?

java - 如何在 Android Studio 中获取错误列表窗口?

android - 为安卓应用提供私钥和证书