Существует улучшение, которое можно сделать по сравнению с реализацией Dispatcher
. Рассматривая реализацию MockWebServer
, я обнаружил, что диспетчер по умолчанию - QueueDispatcher
.
И у него есть несколько очень удобных методов, таких как:
public void setFailFast(boolean failFast)
public void setFailFast(MockResponse failFastResponse)
setFailFast(true)
переводит сервер в режим быстрого сбоя, т. Е. Если в очереди нет ответа, он не ждет, просто немедленно возвращает ответ HTTP 404.
setFailFast(okResponse)
устанавливает ответ на возврат в режиме «fast fast», что точно отвечает на этот вопрос.
Проблема в том, что у вас нет прямого доступа к полю диспетчера в MockWebServer
, поэтому вам нужно установить собственный экземпляр QueueDispatcher
, а затем установить ответ по умолчанию (или ответ «fast fast») на нем вот так:
val dispatcher = QueueDispatcher()
dispatcher.setFailFast(okResponse)
server.setDispatcher(dispatcher)