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("/")返回的基本URL的请求。