Модернизация не выполняет обратный вызов при запуске тестов Robotric

Не получать обратный вызов от Retrofit при тестировании (под JVM).

Тестирование приложения с помощью Robolectric (3.0), Wiremock (1.57: автономная версия) и Mockito (1.10.19).

Приложение использует Retrofit (1.9) для подключения к внутреннему API. В приложении есть службы, которые вызывают API через Retrofit, и действия привязаны к службам.

Отладка и журналы тестового запуска показывают, что действие вызывает службу, служба вызывает модификацию, а модификация возвращает результат из Wiremock (как и ожидалось).

I/com.levld.client.rest.RestAdapterFactory: ‹--- END HTTP (тело 6208 байт) W/com.levld.client.rest.RetrofitErrorHandler: Внутренняя ошибка сервера

Внутренняя ошибка сервера предназначена для запуска обработчика ошибок Retrofit (код состояния, установленный Wiremock).

При отладке обработчика ошибок обработка останавливается, когда Retrofit пытается вызвать службу. Переменные в отладчике показывают, что обратный вызов установлен для вызывающей службы.

Ваша помощь и предложения очень ценятся!


person nordic70    schedule 18.09.2015    source источник


Ответы (1)


Решено путем установки синхронного исполнителя для модернизации. Это запускает синхронное выполнение вызовов API, но по-прежнему возвращает результаты в качестве обратных вызовов вызывающим службам. Асинхронный функциональный код на уровне сервисов не изменился!

Код синхронного исполнителя: https://stackoverflow.com/a/27341424/4413233.

p.s. Robolectric на самом деле предназначен для модульного тестирования

person nordic70    schedule 20.09.2015