Я реализую mockWebServer, и он работает для 200 вызовов, но когда я пытаюсь получить исключение, я получаю это исключение:
Исключение в потоке "OkHttp Dispatcher" java.lang.Error: com.myproject.something.errors.MyException$ServerUnavailable в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1155) в java.util.concurrent.ThreadPoolExecutor$ Worker.run(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()
}
}
Что мне там не хватает?