Как намеренно получить ответ о конфликте HTTP 409 с сервера?

#java #spring #http

#java #spring #http

Вопрос:

Мы внедряем механизм повторных попыток (используя Spring Retry) для ответов о конфликте http 409, которые мы иногда получаем на рабочем сервере.

Но нам интересно, как намеренно заставить сервер отвечать кодом состояния 409? В наших случаях ошибка, похоже, возникает всякий раз, когда мы пытаемся загрузить много данных параллельно; поскольку вероятность этого кажется довольно случайной, есть ли способ получать ее последовательно в целях тестирования?

Комментарии:

1. Вам нужен ответ для тестов?

2. Вы можете отправить запрос на httpbin.org/status/409

3. Вы настраиваете сервер, который вы явно программируете для этого?

4. Turing85 да. CherryDT спасибо, не знал этого! chrylis-осторожно оптимистично — конечно, но что, если я разверну приложение и хотел бы избежать тестирования кода повтора в рабочей среде …?

Ответ №1:

Что ж, может быть несколько возможных способов сделать это, вам нужно уточнить, где именно вам нужно, чтобы был выброшен 409 ,

Я предполагаю (его приложение spring boot), что один из ваших вызовов service (A) вызывает другой service / API (B), и вы ожидаете, что он выдаст 409.

Если это так, вы можете написать @RunWith(SpringRunner.class )/@SpringBootTest протестируйте и смоделируйте ответ от service / API B с помощью 409 и протестируйте свой механизм повторных попыток.

Комментарии:

1. Модульное тестирование и макетирование выполнены и уже работают. Но как только приложение развернуто, как я могу гарантировать, что механизм будет работать в «реальном мире»?