2017-03-17 31 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