Ожидается, что приведенный ниже тест вернет 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 Ошибка сервера 07 февраля 2020 г. 21:20:11 okhttp3.mockwebserver.MockWebServer acceptConnections INFO: MockWebServer[54339] завершен прием соединений: сокет закрыт 07 февраля 2020 г. 21:20:11 okhttp3.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
blockingFirst
оборачивает проверенные исключения вRuntimeException
, поэтому вам нужно извлечь исходное исключение в качестве его причины. - person akarnokd   schedule 07.02.2020