Cześć,
Zastanawiam się jak powinny wyglądać testy małej aplikacji typu CRUD, powiedzmy 20 kontrolerów, wszystkie dziedziczą po kontrolerze bazowym, 5 z nich posiada własną implementację funkcji pod CRUD, reszta zasadniczo robi to samo ale bazuje na różnych właściwościach poszczególnego kontrolera.
I teraz czy testy powinny wyglądać tak że dla tych 5 piszę każdy test odrębnie (logiczne - różnią się implementacją), a dla pozostałych tworze jeden test bazując na jednym z tych 15 pozostałych kontrolerów?
Czy może powinienem zrobić pętle na teście i robić test dla każdego kontrolera?
A może losować jeden z nich i go testować?
Te 15 kontrolerów różni się tylko właściwościami (inne requesty, inne modele lecz zasadniczo funkcjonalność CRUD spełnia się dla nich wszystkich w kontrolerze bazowym).
Pytanie może o podstawy ale chciałem upewnić się czy myślę podobnie.
Aktualnie mam tak że dla takich funkcjonalności losuje sobie po prostu testowany element lecz nie wiem czy jest to na tyle dobre gdyż może łamać regułę powtarzalności *(?), czy może jednak w testach wszystkie elementy powinny być na sztywno?
Doszedłem po prostu do miejsca w którym mam wrażenie że metoda testująca, nie tylko testuje ale w dużej mierze sama wylicza potrzebne do testu elementy, np. do przetestowania losowego kontrolera muszę pobrać dla niego przykładowy model, pobrać zasady walidacji, wygenerować dane i dopiero wykonać faktyczny test np. tworzenia/edycji.
Wszelkie rady mile widziane.
Mam nadzieję że jasno to opisałem.