Podczas pracy z Spring Boot w celu stworzenia mikro-usług bardzo łatwo napisać obszerne i bardzo czytelne testy integracyjne i fałszywe zdalne żądania serwisowe z MockRestServiceServer
.Spring Boot + Cloud | Zuul Proxy | Testowanie integracyjne
Czy istnieje sposób zastosowania podobnego podejścia do przeprowadzenia dodatkowego testu integracji pod numerem ZuulProxy
? To, co chciałbym osiągnąć, to móc sfałszować serwery zdalne, które będą przesyłać do ZuulProxy
i potwierdzić, że wszystkie moje zbiory zachowywały się zgodnie z oczekiwaniami. Jednakże, ZuulProxy
używa RestClient
z Netflix (wydaje się, że jest to przestarzałe?), Które naturalnie nie używa RestTemplate
, które może być ponownie skonfigurowane przez MockRestServiceServer
i obecnie nie mogę znaleźć dobrego sposobu na wyśmiewanie odpowiedzi ze zdalnych usług dla żądań pośredniczących.
Mam mikro-usługę, która jest odpowiedzialna za tworzenie klucza sesji API, a następnie działa podobnie do bramy API. Przekazywanie odbywa się za pomocą Zuul Proxy do bazowych usług, a filtry Zuul wykryją, czy klucz sesji jest ważny, czy nie. Test integracyjny utworzyłby zatem prawidłową sesję, a następnie przekazał do fałszywego punktu końcowego, np. "Integracja/test".
Określenie, że "integracja/test" jest nowym punktem końcowym, możliwe jest poprzez ustawienie właściwości konfiguracji na @WebIntegrationTest
, mogę z powodzeniem kpić z wszystkich usług, które są obsługiwane przez RestTemplate
, ale nie mogę przekazywać Zuul.
Jaki jest najlepszy sposób na osiągnięcie kpiny z usługi docelowej?
Czy istnieje konfiguracja, która musi zostać dodana, aby to działało? Próbuję zrobić coś podobnego, ale Zuul nie wybiera trasy. Otrzymuję ten wyjątek 'Powodowany przez: com.netflix.client.ClientException: Load Balancer nie ma dostępnego serwera dla klienta: strategie'. Wyobrażam sobie, że pochodzi to z konfiguracji Zuul, oczekującej informacji od serwera wykrywania usług, w tym przypadku Eureka, do kierowania połączenia do właściwego IP. – Kilian