android - Mockwebserver takeRequest() 方法无限执行
问题描述
我使用enque()添加了一个请求,但是使用调试器可以看到,当你在里面调用takeRequest时,requestQueue = 0,表示没有请求,之后takeRequest()会无限期地等待一个请求。可能是什么问题呢?
class ExampleUnitTest {
private lateinit var mockWebServer: MockWebServer
@Before
fun setup() {
mockWebServer = MockWebServer()
mockWebServer.start()
mockWebServer.url("/")
}
@After
fun teardown() {
mockWebServer.shutdown()
}
@Test
fun `test`(){
val response = MockResponse()
.setResponseCode(HttpURLConnection.HTTP_OK)
.setBody("response body")
mockWebServer.enqueue(response)
var recordedRequest = mockWebServer.takeRequest()
...
}
}
解决方案
没有请求,因为您从未请求过任何东西。您实际上需要调用一些代码来触发带有由mockWebServer.url("/")
.
推荐阅读
- java - RestTemplate 有时会给出 500 内部服务器错误
- c# - 如何在 MVC 核心 c# 中使用 SaveOnServerPath Rotativa?
- sql - psql 的 \dt PATTERN 是如何工作的?
- javascript - 在javascript中将值乘以连续子字符串的简单方法
- node.js - 承诺待定的空气表
- python - 如何通过 Colab 在我的 Google Drive 中正确加载文件(包括模型)
- html - 如何制作具有多个子菜单的可悬停下拉导航菜单?
- c# - 如何查找在 C# .NET Core 中实现嵌套接口的所有类(类型)?
- email - Net::SMTPAuthenticationError (535-5.7.8 用户名和密码不被接受。了解更多信息): with devise mailer
- react-native - 反应原生 JSON 解析