Testy integracyjne i baza danych

0

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

3
  1. Może https://github.com/codewise-oss/canaveral ? ;)
  2. testcontainers mają dockeryzowanego postgresa którego możesz sobie odpalić z marszu do testu
  3. Możesz też lecieć na H2 jeśli to tylko proste query
  4. Robisz w test/resources osoby plik z propertisami dla testów gdzie property do bazy są podmienione na te testowe localhosty itd
  5. 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?

1 użytkowników online, w tym zalogowanych: 0, gości: 1