MockWebServer响应延迟 - 测试超时

fgy*_*ica 8 timeout delay retrofit okhttp mockwebserver

我正在尝试使用MockWebServer测试HTTP超时情况,该服务器响应我使用Retrofit/OkHttp发送的测试请求.(这个问题几年前才被问到,但当时有关MockWebServer中的一个错误.此外,API已经改变了一点点,所以我认为重新发布这个问题是有道理的.)

似乎有几个相关的方法,但我很欣赏这个问题的解决方案,有一个明确的例子:我不确定它们之间的区别.

  • .delayBody
  • .throttleBody

此外,这两种方法似乎只会延迟/限制正文 - 是否无法为响应标头设置超时?也就是说,在发出任何回复之前,"等待下一个传入请求后X秒".

Jes*_*son 19

尝试将响应的套接字策略设置为NO_RESPONSE.

  • +1工作就像一个魅力,**和**指向我非常有用的SocketPolicy API,我到目前为止完全错过了... (2认同)
  • 设置改造服务时,请确保将读取超时设置为较小的值,以免最终导致不必要的长时间运行测试。 (2认同)

小智 6

setSocketPolicy()方法已被弃用。

MockResponse mockResponse = new MockResponse().setBodyDelay(10, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)

这将使 MockWebServer 响应延迟 10 秒。