Wpis z mikrobloga

Hej programujące mirasy!

Piszę apkę do portfolio w #angular . Stronka jest już ogarnięta, no ale co to za apka bez testów... No i właśnie - wiem jak, ale zawiesiłem się na dość filozoficznym pytaniu "CO?"...

Przykład: na start zacząłem od ekranu rejestracji - w komponencie tylko funkcja register() wywołująca odpowiedni serwis. Sprawdziłem czy funkcja jest wywołana, ile razy, z jakimi parametrami... Czy to jest potrzebne? Przecież w katalogu obok są testy sprawdzające sam serwis.

Dalej testy sprawdzające co się stanie po udanym/nieudanym tworzeniu użyszkodnika - OK, to rozumiem bo to coś co komponent sam w sobie musi ogarnąć - przekierować użytkownika tu albo tam albo cokolwiek.

Dalej - template! Mam template-driven form z jakąś tam walidacją - z rozpędu napisałem testy do sprawdzania tej walidacji. Ot 200 linii kodu - dla pojedynczego inputa... Weż to potem scrolluj... A może rozbić to na pojedyńcze pliki dla każdego inputa... Jest w ogóle sens sprawdzać template? Może zamiast tego powinienem sprawdzać typ i poprawność danych w testach samej funkcji register()? Tylko wtedy po co walidacja na poziomie html'a? Może nawet najbardziej gówniany formularz pisać jako reactive-form?

A może w ogóle nie pisać testów dla takich komponentów? Przecież to jest stabilny komponent, który raczej się zmieniać nie będzie. Co innego z serwisem z którego on korzysta - tu testy na pewno.

A i jeszcze! Gdzie jest granica testu jednostkowego? sprawdzenie samej funkcji register() - no jednostkowy. Ale przypisanie wartosci inputom i click() na przycisku, żeby wywołać register()... no niby sprawdzam tylko ten konkretny komponent, ale tak jakby symuluje użytkownika? To wciąż test jednostkowy?

Stąd pytanie - co testujecie? Co decyduje o tym, że dany test w ogóle powstanie?

A się rozpisałem... btw. dopiero się przymierzam bycia programistą więc proszę o wyrozumiałość jeżeli pytanie jest durne.

Jeżeli ktoś ma do polecenia jakąś literaturę w tym temacie to również poproszę ( ͡° ͜ʖ ͡°)

#programowanie #webdev #angular #frontend
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach