W ramach eksperymentu chciałem przepisać produkt mojej poprzedniej firmy zgodnie z TDD. Głownie dlatego, że dosyć dobrze znam domenę i nie będę musiał tracić czasu na wymyślanie różnych rzeczy. Stwierdziłem, że zacznę od procesu składania zamówienia. Dla nowego klienta wygląda on mniej więcej tak:
- Ktoś wchodzi na główną stronę.
- Wpisuje kod pocztowy i klika szukaj.
- Wybiera datę i godzinę oraz jakieś tam parametry zamówienia po czym klika dalej.
- Podaje swoje dane: imię, nazwisko, hasło, adres i takie tam.
- Wybiera metodę płatności i przechodzi na kolejną stronę.
- Tutaj w zależności od metody płatności albo autoryzuje kartę, albo przechodzi na stronę pośrednika płatności.
- "Thank you" page.
Wątpliwości, które mam:
- Czy taki scenariusz nie będzie za długi? Jak przerobiłem to na Gherkina, to na pierwszy rzut oka wyglądało to trochę strasznie. Powinienem to jakoś podzielić?
- Powyższy proces może się rozejść w wielu miejscach. Załóżmy, że chcę napisać dwa testy: płatność kartą, płatność przelewem. Czy w tym wypadku powinienem mieć dwa pełne scenariusze, które się różnią tylko krokiem 6, czy zrobić jakiś setup ("background") i zacząć scenariusz od kroku 5?
- Jeżeli chciałbym sprawdzić, że klient może się zalogować (podczas kroku 4 klika, że ma konto), to czy powinienem również napisać cały test od początku do końca, czy powiedzmy tylko do tego momentu kiedy się loguje (1-4), a może tylko od tego momentu do końca (4-7) i zrobić setup używając "background" (sprawdzając, czy jak się zaloguje, to może domknąć zamówienie)?