Mockito.verify如果​​运行方法通过,但在运行类时失败

问题描述

我有网络服务,并使用MockWebServer对其进行测试。 Web服务包含从服务器获取响应时调用的回调。而且我想检查在收到响应时是否使用正确的参数调用了回调函数

    mockWebServer.enqueue(new MockResponse().setResponseCode(HttpURLConnection.HTTP_OK));
    mockWebServer.start();

    Callback callback = Mockito.mock(Callback.class);

    webservice.doSomething(callback);
    mockWebServer.takeRequest();

    Mockito.verify(callback).result(true); //false for unsuccessful response

如果对成功或失败的响应运行单个测试,则一切正常。但是,如果运行类测试(一次在类中进行所有测试),我将得到:

    Wanted but not invoked    
    сallback.result(true);

进行第二次测试(第一次成功)。实际上,сallback.result()一直被调用,但是Mockito.verify()不会第二次等待它。

解决方案是:

    Mockito.verify(callback,Mockito.timeout(1000)).result(true);

但是问题是-为什么会这样?

我试图检查在发送请求和调用回调之间经过了多少时间。在课堂上进行第二次测试,它甚至比第一次测试更快。那么,Mockito为何不等待第二次回调调用呢?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)