[quote=Vayneyks]Widzę, w ogóle jestem Ci bardzo wdzięczny za bezpośrednią odpowiedź, bo doczytałem sobie i przemyślałem dzisiaj - i poniekąd zgadzam się z Tobą.
Raczej dąże do tego, czy pisanie test unitami kodu do sprawdzenia różnych przypadków nie jest mało eleganckie? I ponawiam pytanie - po co cucumber? Czy tylko jako kod dla klienta?[/quote]
Ok, rozwinę trochę
Zaczynałem z cucumberem gdy to było bardzo modne i wszyscy się zachwycali tym, że można pisać po angielsku. W praktyce wyglądało to tak. Kroki robiły się coraz bardziej zagmatwane, coraz więcej było tabelek do inicjalizacji danych, tabelek do różnych scenariuszy. Klient tego nie czytał, a to jest dla mnie jedyna zaleta babrania się w pisaniu kroków w ludzkim języku, które i tak trzeba obkodować.
Ale to tylko odnośnie cucumbera, można się zgodzić lub nie. Ja wolę pisać normalnie w rspecu i używać pod spodem capybary - wszystko pięknie działa, aczkolwiek co kto lubi. Nie ma co się spierać o takie rzeczy.
Problemy z testami integracyjnymi w takim wydaniu są na kilku poziomach:
- Czas wykonywania. Wyobraź sobie BDD z takim test suitem. Przy malutkiej aplikacji to jeszcze możliwe, ale ile tak naprawdę rozwijałeś małych aplikacji?
- Niezawodność. Pół biedy, jeśli nie ma tam jsów i wykonujesz to bez zaprzęgania selenium, czy wręcz przeglądarki. Bo jeśli tak, to zwiększasz znacznie szansę, że coś się zawiesi. Jeśli puszczam testy integracyjne i coś padnie to mogę być niemal pewny, że coś zepsułem, albo test jest źle napisany. W cucumberze czasem zdarzy się, że driver się zawiesi i nie odpowiada.
- Prostota pisania.
I teraz pytanie najważniejsze. Co tak naprawdę testujesz? Testujesz, czy wykonają się walidacje, za co jest odpowiedzialny model. Ok, jest tu jeszcze kilka spraw, jak pokazanie się informacji o błędach, ale to można zrobić jednym przypadkiem, gdzie masz wszystkie pola błędne, więc tutaj powinien wystarczyć jeden test na poprawne dane, jeden na niepoprawne.
W przypadku rejestracji taka ostrożność jest wytłumaczalna, ale na dłuższą metę i w większości innych przypadków jest to moim skromnym zdaniem strzelanie sobie w stopę.
Dlatego jak zawsze wszystko zależy :>, tylko jakoś tak mi się zapala czerwone światło, gdy widzę takie rzeczy ;).