Задержка ответа MockWebServer - тайм-ауты тестирования

Я пытаюсь протестировать сценарии тайм-аута HTTP, используя MockWebServer, который отвечает на мои тестовые запросы, отправленные с помощью Retrofit/OkHttp. (Этот вопрос задавался раньше несколько лет назад, но в то время он касался ошибки в MockWebServer. Также , с тех пор API значительно изменился, поэтому я думаю, что повторная публикация этого вопроса оправдана.)

Кажется, есть несколько связанных методов, но я был бы признателен за решение этой проблемы с наглядным примером: я не уверен в разнице между..

  • .delayBody и
  • .throttleBody

Кроме того, оба этих метода, по-видимому, только задерживают/дросселируют тело - нельзя ли установить тайм-аут для заголовка ответа? т.е. что-то вроде «подождите X секунд после следующего входящего запроса, прежде чем отправлять какой-либо ответ».


person fgysin    schedule 22.09.2016    source источник
comment
Отвечает ли это на ваш вопрос? задержка ответа MockWebServer   -  person kreker    schedule 18.01.2021


Ответы (1)


Попробуйте установить политику сокета ответа на NO_RESPONSE.

person Jesse Wilson    schedule 23.09.2016
comment
+1 Работал как шарм, и указал мне на очень полезный API SocketPolicy, который я почему-то до сих пор полностью пропустил... - person fgysin; 26.09.2016
comment
Я хочу имитировать запрос на модификацию, чтобы тайм-аут истек. Могу ли я использовать этот метод? - person Mahdi; 13.02.2019
comment
При настройке службы модернизации убедитесь, что вы установили время ожидания чтения на что-то небольшое, чтобы не получить ненужный длительный тест. - person oddmeter; 21.02.2019
comment
Это не возвращает исключение SocketTimeoutException. Он возвращает HTTP FAILED: java.io.IOException: неожиданный конец потока - person DevinM; 22.10.2020