Wpis z mikrobloga

#java #hibernate #spring

Mirki, jaka jest dobra praktyka czyszczenia bazy przed każdym testem?
Aktualnie mam zrobiona klase IntegrationTest, w której czyszczę wszystkie repo
repo1.deleteAll()
repo2.deleteAll()
...

Wszystkie testy integracyjne implementują tą klasę i przed każdym testem czyszczą kolejno wszystkie repo.
Domyślam się, że jest lepsze rozwiązanie ale nie potrafie znaleźć konkretnych informacji.

Jaka jest dobra praktyka? Wykonanie SQL truncate na bazie?
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 2
@mariusz-laszczka Stawianie bazy embedded typu h2 z dialektem docelowej bazy do której się łączysz. Albo jezli używasz jakiegoś specjalnego dialektu którego nie obsługuje h2, to stawianie obrazu w dockerze i robienie create/drop dla każdej klasy testowej. W pierwszym przypadku w junitach będziesz musiał odpalac nowego datasourca w metodzie before, chyba że skorzystasz ze spocka który automatycznie przelatuje to pole za każdym test casem (Spock jest świetny!).
  • Odpowiedz
łączysz. Albo jezli używasz jakiegoś specjalnego dialektu którego nie obsługuje h2, to stawianie obrazu w dockerze i robienie create/drop


@nars: Dzieki, stawiam baze h2 z dialektem do oracla i wszytko dziala ok. Możesz rozwinąć co miałeś na myśli, mówiąc o odpalaniu nowego datasourca w @befor?
  • Odpowiedz
  • 0
@mariusz-laszczka tworzenie nowego obiektu datasource dla każdego testu, ale jak masz springa to pewnie jest to zautomatyzowane. Wtedy możesz dodać też jakieś skrypty z przykładowymi danymi.
  • Odpowiedz