下面的测试预计会返回 HttpException,但它会返回 RuntimeException。
@Test
fun `Server down returns 500 error`() {
mockWebServer.enqueue(MockResponse().setResponseCode(500))
val exception: Exception =
assertThrows(
HttpException::class.java
) {
githubApi
.getRepoList("test")
.blockingFirst()
}
assertEquals(exception, HttpException::class)
}
失败测试的日志是
信息:MockWebServer[54339] 收到请求:GET /users/test/repos HTTP/1.1 并响应:HTTP/1.1 500 服务器错误 2020 年 2 月 7 日晚上 9:20:11 okhttp3.mockwebserver.MockWebServer acceptConnections 信息:MockWebServer[54339]完成接受连接:套接字已于 2020 年 2 月 7 日晚上 9:20:11 关闭 http3.mockwebserver.MockWebServer$serveConnection$$inlined$execute$1 runOnce INFO:MockWebServer[54339] 来自 /127.0.0.1 的连接失败:java.net.SocketException:插座关闭
org.opentest4j.AssertionFailedError:引发意外的异常类型==> 预期:com.jakewharton.retrofit2.adapter.rxjava2.HttpException 但为:java.lang.RuntimeException