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
Testy integracyjne i baza danych
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
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
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Kraków
- Postów: 255
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 "test@test.com" 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? ;)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2787
0
Użyj SecurityContextHolder.getContext().setAuthentication(..) żeby w teście ustawić jakiegoś usera ;)