MockRetrofit и BehaviorDelegate игнорируют OkHttpClient

Я пишу SDK для нашего сервиса MBaaS. Я использую Retrofit2 для моих вызовов REST.

У меня есть Interceptor (очень похоже на это ) для обновления истекшего токена, который делает довольно сложные случаи if-else. Для тестирования перехватчика мне нужно MockRetrofit наш API, который я использую с MockRetrofit библиотеки MockRetrofit . Все идет нормально! (См. Конец вопроса для некоторой информации о моем классе перехватчика)

Вот код:

 @Before public void setup() { Retrofit retrofit = new Retrofit.Builder() .baseUrl(BacktoryClient.BASE_URL) .client(new OkHttpClient.Builder().addInterceptor(new RetryWithRefreshedTokenInterceptor()).build()) .build(); NetworkBehavior behavior = NetworkBehavior.create(); MockRetrofit mockRetrofit = new MockRetrofit.Builder(retrofit) .networkBehavior(behavior) .build(); delegate = mockRetrofit.create(AuthApiDefinition.class); } @Test public void testRetryWithRefreshedToken() throws Exception { SimpleMock apiMock = new SimpleMock(delegate); Response<SomeApiResponse> response = apiMock.someApiCall(<parameters>).execute(); // assert part } 

Проблема в том, что объект response в методе тестирования – это то, что должно быть (указание на то, что насмешливая часть в порядке), но перехватчик RetryWithRefreshedTokenInterceptor не вызывается. Поэтому я предполагаю, что MockRetrofit игнорирует OkHttpClient .

Теперь, задавая реальный вопрос, это какая-то ошибка, или я полностью неправильно понял использование библиотеки MockRetrofit? Если это был ты, как ты тестировал перехватчик?


Дополнительная информация о RetryWithRefreshedTokenInterceptor: проверяет, является ли код ответа 401 или нет, и если это вызывает метод нашего SDK, который сам вызывает метод нашего API (здесь из изделенного API), чтобы получить новый токен и сохраняет его в постоянном хранилище (Количество логики, обработанной в методах API, используемых в перехватчике, достаточно велико, я не могу изолировать перехватчик, чтобы проверить его с помощью MockWebserver )