MockWebServer 响应延迟 - 测试超时
Posted
技术标签:
【中文标题】MockWebServer 响应延迟 - 测试超时【英文标题】:MockWebServer response delay - testing timeouts 【发布时间】:2017-01-31 00:39:35 【问题描述】:我正在尝试使用 MockWebServer 来测试 HTTP 超时场景,该服务器会回答我使用 Retrofit/OkHttp 发送的测试请求。 (这个问题was asked before 几年前,但当时涉及到 MockWebServer 中的一个错误。此外,API 已经发生了相当大的变化,所以我认为重新发布这个问题是有道理的。)
似乎有几种相关的方法,但我希望通过一个明确的例子来解决这个问题:我不确定两者之间的区别..
.delayBody
和
.throttleBody
此外,这两种方法似乎都只是延迟/限制正文 - 是否无法为响应标头设置超时? IE。类似于“在发出任何响应之前,在下一个传入请求后等待 X 秒”。
【问题讨论】:
这能回答你的问题吗? delay MockWebServer response 【参考方案1】:尝试将响应的套接字策略设置为 NO_RESPONSE。
【讨论】:
+1 工作就像一个魅力,和向我指出了非常有用的 SocketPolicy API,到目前为止我不知何故完全错过了...... 我想模拟改造请求,以便发生超时。我可以用这个方法吗? 在设置改造服务时,请确保您已将读取超时设置为较小的值,以免最终导致不必要的长时间运行测试。 这不会返回 SocketTimeoutException。它返回“HTTP FAILED: java.io.IOException: unexpected end of stream”以上是关于MockWebServer 响应延迟 - 测试超时的主要内容,如果未能解决你的问题,请参考以下文章
使用 Retrofit 和 MockWebServer 模拟无网络