Jaka jest różnica koncepcyjna między Rspec's feature specs i request specs?RSpec: Jaka jest różnica między funkcją a specyfikacją żądania?
Od docs cecha wyspecjalizoway:
specyfikacje fabularne są testy wysokiego szczebla przeznaczone do wykonywania kromki funkcjonalności przez aplikację. Powinni sterować aplikacją tylko za pomocą zewnętrznego interfejsu, zwykle stron internetowych.
I na żądanie Specyfikacja:
Żądanie specyfikacje zapewniają cienką otoki wokół testów integracyjnych Rails i są zaprojektowanych do jazdy zachowania poprzez pełne stosie, w tym routing (dostarczone przez Rails) oraz bez karczowania (to zależy od ciebie). z prośbą specyfikacji można:
- określić pojedynczy wniosek
- określić wiele żądań w wielu kontrolerów
- określić wiele żądań w wielu sesjach
wiem, że specyfikacje funkcji użyć Capybara i prośby o specyfikacje nie. Ale to nie zasługuje na różne koncepcje.
Czy poleciłbyś używać zarówno specyfikacji funkcji, jak i żądań, czy jedna z nich jest wystarczająca? (Będąc nowym dla TDD ...) – robertwbradford
Używam obu, @ robertwbradford. Korzystam ze specyfikacji funkcji, aby sterować zewnętrznymi testami - testując doświadczenie użytkownika, a następnie budując funkcjonalność za pomocą testów jednostkowych. Używam specyfikacji zleceń do testowania odpowiedzi - np. w session_spec mogę mieć opis '' GET/login "' blok z oczekiwaniami w 'it' blokach takich jak' spodziewać (response.status) .to eq (200) 'i' spodziewać (odpowiedź) .to render_template (: new) 'lub w 'opisać' POST/sesje" ', a' context "z poprawnymi poświadczeniami" 'blok, z' spodziewać (odpowiedź) .to redirect_to (użytkownik) 'i' follow_redirect !; oczekiwać (response.body) .to include ("Signed in") ' –
Czy używasz również specyfikacji kontrolera? Wygląda na to, że jest trochę duplikacji między testami w specyfikacji zleceń a testami standardowymi. – Ernesto