【发布时间】:2022-02-03 22:40:57
【问题描述】:
使用具有以下依赖项的 MockWebServer:
testImplementation("com.squareup.okhttp3:mockwebserver")
还有下面的测试类:
class MockWebServerTest() {
private val mockWebServer = MockWebServer()
private val client = HttpClient.newBuilder().build()
@BeforeClass
fun setup() {
mockWebServer.start(8081)
mockWebServer.dispatcher = object : Dispatcher() {
override fun dispatch(request: RecordedRequest): MockResponse {
when(request.path){
("success") ->{
return MockResponse()
.setResponseCode(200)
.setBody("success")}
("error") ->{
return MockResponse()
.setResponseCode(500)
.setBody("error")}
else -> {
return MockResponse()
.setResponseCode(200)
}
}
}
}
}
@AfterClass
fun teardown() {
mockWebServer.shutdown()
}
@Test
fun givenMockServerRuns_itShouldRespond(){
val request = HttpRequest.newBuilder()
.uri(URI.create("http://localhost:8081/success"))
.setHeader("Content-Type", "text/html")
.GET()
.build()
val response = client.send(request, HttpResponse.BodyHandlers.ofString())
assertThat(response.statusCode()).isEqualTo(200)
assertThat(response.body()).isEqualTo("success")
}
}
我总是收到Connection refused: no further information。我已经在 stackoverflow 上找到了一些答案,例如 this answer,但我现在不知道这个解决方案是什么意思,我认为它只与 android 相关。
【问题讨论】:
标签: kotlin mockwebserver