Wpis z mikrobloga

@Nofenak: Często wygodniej jest napisać sobie kawałek kodu który takie dane "generuje" zgodnie z zadanymi parametrami. Dzięki temu z jednej strony zrobienie kolejnych testów staje sie dużo szybsze a z drugiej strony w teście widać gołym okiem co takie dane zawierają. Jak ładujesz w teście jakieś dane z pliku to potem jak test zaczyna failować ktoś musi siedzieć i rozkminiać o co chodziło w tych danych.
  • Odpowiedz
@Nofenak: To zależy, wrzucając dane bezpośrednio do bazy danych może dojść do sytuacji w której masz pewien stan w bazie danych, który nigdy nie będzie możliwy ze względu na logikę biznesową. Ogólnie wrzucanie danych przez repozytoria nie jest jakimś wielkim błędem, ale o ile to możliwe, to najlepiej wykorzystać warstwę application service, które wykonują daną logikę biznesową i zapewniają ci spójną warstwę persystencji.
  • Odpowiedz
@Nofenak: jak twoje repozytorium to jest 90% logiki w aplikacji (przygotowanie zapytania, odpytanie zapytania na odpowiedniej bazie, ktora ma constrainty i triggery, przeparsowanie wyników) i chcesz usunąć tą część dla testów no to sam sobie odpowiedz. Jak logika aplikacji jest skomplikowana a na bazie robi się proste selecty/inserty bez żadnych where/join to faktycznie może mieć to sens

Ja generalnie lubię zawsze testować z bazą np. używając testcontainers.
  • Odpowiedz