При работе с Spring Boot для создания микросервисов очень легко написать обширные и очень читаемые интеграционные тесты и mock-запросы удаленного обслуживания с MockRestServiceServer
.Весенняя обувь + облако | Zuul Proxy | Интеграционное тестирование
Есть ли способ использовать аналогичный подход для проведения дополнительного теста интеграции на ZuulProxy
? То, что я хотел бы достигнуть, - это возможность высмеять удаленные серверы, которые ZuulProxy
пересылали и проверяли, что все мои ZuulFitler
s ведут себя как и ожидалось. Тем не менее, ZuulProxy
использует RestClient
из Netflix (устарел, казалось бы?), Который, естественно, не использует RestTemplate
, который может быть повторно настроен на MockRestServiceServer
, и в настоящее время я не могу найти хороший способ издеваться над ответами удаленных служб на прокси-запросы.
У меня есть микросервис, который отвечает за обработку создания ключа сеанса API, а затем будет действовать аналогично шлюзу API. Пересылка осуществляется с помощью Zuul Proxy для лежащих в основе служб, а Zuul Filters обнаруживает, что ключ сеанса действителен или нет. Таким образом, интеграционный тест создаст действительный сеанс, а затем перейдет на поддельную конечную точку, например, «интеграция/тест».
Задать вопрос о том, что «интеграция/тест» является новой конечной точкой, установив свойство конфигурации на @WebIntegrationTest
, я могу успешно имитировать все службы, которые обрабатываются через RestTemplate
, но не пересылку Zuul.
Каков наилучший способ добиться издевательств в прямом целевом сервисе?
есть ли какая-либо конфигурация, которая должна быть добавлена для этого? Я пытаюсь сделать что-то подобное, но Зуул не выбирает маршрут. Я получаю это исключение 'Caused by: com.netflix.client.ClientException: балансировка нагрузки не имеет доступного сервера для клиента: strategie'. Я предполагаю, что это происходит из конфигурации Zuul, ожидающей получения информации от сервера обнаружения сервисов, в данном случае Eureka, для маршрутизации вызова на правильный ip. – Kilian