首页 > 解决方案 > 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()

        ...
    }
}

标签: androidmockwebserver

解决方案


没有请求,因为您从未请求过任何东西。您实际上需要调用一些代码来触发带有由mockWebServer.url("/").


推荐阅读