Cześć! Potrzebuję kilku podpowiedzi :P Muszę napisać testy integracyjne dla kontrolerów mojej apki tylko nie wiem zbytnio jak się za to zabrać. Chcę postawić jakąś bazę, do której te moje testy będą uderzać - jak to zrobić? Korzystam z postgresa, którego stawiam przez dockera, do testów też użyć postgresa czy jakieś in-memory jak H2? Jeśli zdecyduję się na postgresa to mogę korzystać z mojego pliku application.yml czy tworzyć nowy? Chcę to jakoś odizolować od reszty, powinienem tworzyć też osobny kontekst? Możliwe, że trochę chaotycznie to rozpisałem, są to dla mnie nowe rzeczy i może to przez to :D
0
3
- Może https://github.com/codewise-oss/canaveral ? ;)
- testcontainers mają dockeryzowanego postgresa którego możesz sobie odpalić z marszu do testu
- Możesz też lecieć na H2 jeśli to tylko proste query
- Robisz w test/resources osoby plik z propertisami dla testów gdzie property do bazy są podmienione na te testowe localhosty itd
- Startujesz normalnie swoją aplikację, tylko podajesz springowi inne propertisy dla testów
0
Okej, to zamiast tworzyć nowy temat to spytam się jeszcze o jedną rzecz związaną z testami. Podczas logowania się w headerze wystawiany jest JWT. Potrzebuję podbić do mojego endpointa "/users/login", przesłać dane do logowania "[email protected]" hasło "test" i jakoś wyciągnąć ten token aby następnie używając go podbić do GETa, który zwraca mi dane użytkownika o id=1 (jak nie dam tokena to oczywiście leci 401). Jest może jakaś gotowa metoda pod to? ;)
0
Użyj SecurityContextHolder.getContext().setAuthentication(..)
żeby w teście ustawić jakiegoś usera ;)
0
A jak mogę się dostać do tokena, który jest wystawiany w nagłówku po pomyślnym zalogowaniu?