在我的MockWebServer中,我使用了两个不同的调度程序。一个LocalResponseDispatcher用于本地添加响应和一个普通的QueueDispatcher,以便将一些存根响应排入队列。我有两个问题切换的问题。事实上,当我试图使用.setDispatcher()时,网络服务器总是回答前一个响应。你有同样的问题吗?
答案 0 :(得分:0)
我有类似的问题。每个测试都是单独进行的,但是不止一个测试只有第一个完成了他的工作。我发现,我的问题在不同的地方撒谎。当您使用MockWebServer时,请记住,如果您使用@Before
方法执行
mockWebServer.url()
每个测试的API端口几乎总是不同的。网址中的端口号会发生变化,例如。来自http://localhost:58919/
到http://localhost:52915/
我的问题是我只用url实例化了一次我的API。这通常是个好主意,因为您的API网址在您的应用工作期间不会更改。解决方案是向setBaseUrl(String url)
提供TestApplication extends Application
(使用适当的自定义jUnit运行程序),最终重新创建您的API:在我的示例中,我重新实现了Retrofit和API - 测试开始像魅力一样工作。