Wpis z mikrobloga

Kurcze nie moge znaleźć odpowiedzi, jak przetestować unikalną kolumnę w springu? Bo testuje sobie BookService i mam book.setIsbn("12345678910"); tyle że jak odpalę ponownie test to mi wyrzuca ofc błąd dataintegration bo to jest unikalna kolumna (w sensie ma mieć unikalne wartośći). Próbowałem dać tam UUID ale jest za długie na te kolumne. Co polecacie? #spring #java #testowanieoprogramowania
  • 12
  • Odpowiedz
@MrFisherman: Ja bym to zrobił tak, że
Int nazwaWartosci = random.cośtam;
I potem book.setIsbn(nazwaWartosci) - i ew. łapanie błędu dataintegration i ponowne wylosowanie cyferek

Albo ustawić na obecną datę - 202101281128 - to się nie powtórzy( ͡° ͜ʖ ͡°)
  • Odpowiedz
@cochese: no dokladnie, to co zastosuje to juz ma male znaczenie. Wazne zeby baza byla w takim samym stanie przed jak i po tescie.

Pal licho nawet te kolumny z unique ale nie sprzatanie moze prowadzic do padajacych testow w losowych momentach bo np kolejnosc ich uruchomienia moze miec znaczenie.
  • Odpowiedz
@MrFisherman: no to do testu dodajesz dwie, a potem je usuwasz. nie do konca rozumiem problem :)

I tak, jest to normalna praktyka, ze po wykonaniu assercji czyscimy baze ze wszystkiego co test wyprodukowal. Z drugiej strony przemysl zmiane bazy danych do testow z mysql na wyzej wymienione h2, h2 ladnie udaje dialekt mysql i dziala w pamieci przez co jest szybka i latwa do wyczyszczenia :)
  • Odpowiedz