Android 如果运行方法,则传递Mockito.verify(),但在运行类时失败

Android 如果运行方法,则传递Mockito.verify(),但在运行类时失败,android,unit-testing,mockito,junit4,mockwebserver,Android,Unit Testing,Mockito,Junit4,Mockwebserver,我有webservice,并使用MockWebServer来测试它。 Webservice包含回调,当它从服务器获得响应时调用回调。我想检查在收到响应时是否使用正确的参数调用回调 mockWebServer.enqueue(new MockResponse().setResponseCode(HttpURLConnection.HTTP_OK)); mockWebServer.start(); Callback callback = Mockito.mock(Callb

我有webservice,并使用
MockWebServer
来测试它。 Webservice包含回调,当它从服务器获得响应时调用回调。我想检查在收到响应时是否使用正确的参数调用回调

    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
如果运行单个测试以获得成功或不成功的响应,则所有测试都可以正常工作。但是如果运行类测试(一次运行类中的所有测试),我会得到:

用于第二次测试(第一次成功)。实际上,
Сallback.result()
始终被调用,但
Mockito.verify()
不会再等待它

解决办法是:

    Mockito.verify(callback, Mockito.timeout(1000)).result(true);
但问题是——为什么会这样

我试图检查发送请求和调用回调之间的时间间隔。在课堂上,第二次测试的速度甚至比第一次快。那么是什么使得
Mockito
不等待第二次回调呢

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