Testowanie aplikacji

Cześć,
już jakiś czas piszę aplikacje w RoR i chciał bym zgłębić temat testowania.
Pierwsze pytanie : Dlaczego warto testować aplikacje po przez pisanie kodu a nie “klikanie” po aplikacji.
Sprawa nr dwa : Gdzie poczytam jak laik ma pisać testy i co warto testować Model, Widok, Kontroler. Najlepszy by był jakiś dobry tutorial opisujący od zera jak testować aplikacje.

Dzięki za odpowiedzi :wink:

po pierwsze dlatego, że klikanie się nie skaluje - jak będziesz miał do przeklikania 1000 przypadków, to będziesz miał b. ciężko.
po drugie, bo czasami zmiana w jednym miejscu aplikacji powoduje, że w zupeeełnie innym miejscu aplikacja zaczyna się sypać(bez testów nie wpadłbyś, że to mogło mieć jakikolwiek związek!)
po trzecie, gdy robisz bundle update (nie mówiąc już o wyjściu nowej wersji railsów), to przy dobrym pokryciu testami masz praktycznie pewność, że aplikacja działa tak jak powinna pomimo wrzucenia nowej biblioteki

Co do tego jak testować: Zaraz zleci się tu kościół rspeca, ale mimo wszystko to napiszę: Zacznij testować mini testem/ test unitem. To “zwykły” ruby, próg wejścia w samo pisanie testu jest zerowy.
Co warto testować: tu każdy powie Ci co innego, natomiast wg. mnie, dla celów nauki: testuj wszystko.
Napisz testy do każdej metody z modelu, przetestuj asocjacje, walidatory.
Przetestuj kontrolery, a potem zabierz się za testy integracyjne.
Gdy będziesz miał code to test ratio w okolicach 1:5.5, Twoje testy będą leciały kilkadziesiąt minut, zmiana jakiejkolwiek funkcjonalności będzie powodowała przepisanie kilkunastu testów, to będzie oznaka, że jesteś na dobrej drodze, żeby zacząć myśleć o tym, że są rzeczy, których nie warto testować. Ale do nauki jak najbardziej uważam, że testowanie na siłę wszystkiego ma sens;)

1 Like

Dzięki za odpowiedz. Czas napisać pierwsze testy zobaczymy co z tego wyjdzie. Jak macie jakieś dobre tutoriale będę wdzięczny.

calkiem niezle wprowadzenie na zupelny poczatek jest w rails samym:
http://guides.rubyonrails.org/testing.html

plus http://rubykoans.com/ na pozniej albo nawet wczesniej