W celach informacyjnych - http://en.wikipedia.org/wiki/Single_responsibility_principle
Mam scenariusz testowy, w którym w jednym module aplikacji jest odpowiedzialny za tworzenie wpisów księgi. Istnieją trzy podstawowe zadania, które można wykonać -
- Przeglądaj istniejące wpisy księgi w formacie tabeli.
- Utwórz nowy wpis do księgi za pomocą przycisku Utwórz.
- Kliknij pozycję księgi w tabeli (wspomnianą w pierwszym wskaźniku) i przejrzyj jej szczegóły na następnej stronie. Na tej stronie możesz anulować wpis księgi.
(Na każdej stronie jest jeszcze kilka operacji / sprawdzeń poprawności, ale dla zwięzłości ograniczę to do tych)
Postanowiłem więc stworzyć trzy różne klasy -
- LedgerLandingPage
- CreateNewLedgerEntryPage
- ViewLedgerEntryPage
Klasy te oferują usługi, które można przeprowadzić na tych stronach, a testy Selenium wykorzystują te klasy, aby doprowadzić aplikację do stanu, w którym mógłbym potwierdzić.
Kiedy recenzowałem go u mojego kolegi, był już za bardzo nakręcony i poprosił mnie, abym zrobił jedną klasę dla wszystkich. Mimo że uważam, że mój projekt jest bardzo czysty, wątpię, czy nadużywam zasady pojedynczej odpowiedzialności