2017-03-17 65 views
2

在我的MockWebServer我使用两个不同的调度器。一个用于本地添加响应的LocalResponseDispatcher和一个正常的QueueDispatcher,以排列一些存根响应。我有问题在两个之间切换。事实上,当我试图使用.setDispatcher()Web服务器的答案总是与前一个响应。你有同样的问题吗?Android的MockWebServer调度问题

回答

0

我有类似的问题。每个测试都单独进行,但不止一次只有第一次完成了他的工作。我发现,我的问题在不同的地方撒谎。记住,当你使用MockWebServer时,如果你在@Before方法中执行 mockWebServer.url()你的API的端口几乎总是不同于每个测试。网址中的端口号发生变化,例如。从http://localhost:58919/http://localhost:52915/

我的问题是我实例化我的API只有一次URL。这通常是个好主意,因为您的API网址在您的应用程序工作期间不会更改。解决方案是提供setBaseUrl(String url)TestApplication extends Application(带有适当的定制jUnit转轮),最终重新创建您的API:在我的示例中,我重新实施了Retrofit和API - 测试开始像魅力一样工作。

+0

当你使用mockwebserver时,你也不会使用okHttp缓存或任何其他缓存机制,在我的情况下,这是问题所在。 – lupsyn

+0

@lupsyn发布它作为你的回应:) – Przemo