Я реализую mockWebServer, и он работает для 200 вызовов, но когда я пытаюсь получить исключение, я получаю следующее исключение:
Исключение в потоке "Диспетчер OkHttp" java .lang.Error: com.myproject.something.errors.MyException $ ServerUnavailable в java .util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1155) в java .util.concurrent.ThreadPoolExec. выполнить (ThreadPoolExecutor. java: 624) в java .lang.Thread.run (Thread. java: 748)
И этот
Вызывается: com.myproject.something.errors.ServerException $ ServiceUnavailable в com.myproject.something.errors.MyException $ ServerUnavailable. (ServerException.kt: 6) в com.myproject.ErrorInterceptor.intercept (IntegrationTest.kt: 86)
У меня есть этот перехватчик ошибок для фальшивой модернизации
class ErrorInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response =
try {
val response = chain.proceed(chain.request())
if (!response.isSuccessful) {
when (response.code) {
HttpURLConnection.HTTP_UNAVAILABLE -> throw MyException.ServiceUnavailable
else -> throw ServerException(IllegalStateException("Not handled"))
}
}
response
} catch (error: IOException) {
throw ServiceException(error)
}
}
И я правильно ставлю в очередь вызов, я просто отправляю 503 в качестве ответа ...
Это мой тест
@Test(expected = MyException.ServerUnavailable::class)
fun test2() {
mock Response with HttpURLConnection.HTTP_UNAVAILABLE
runBlocking {
apiService.doThecall()
}
}
Что мне делать? там скучаешь?