Jaka jest koncepcyjna różnica między specyfikacjami funkcji Rspec a specyfikacjami żądań ?
Z dokumentacji specyfikacji funkcji:
Specyfikacje funkcji to testy wysokiego poziomu, których celem jest sprawdzenie fragmentów funkcjonalności za pośrednictwem aplikacji. Powinny sterować aplikacją tylko przez jej interfejs zewnętrzny, zwykle strony internetowe.
A dla specyfikacji żądania:
Specyfikacje żądań zapewniają cienkie opakowanie wokół testów integracji Railsów i są zaprojektowane tak, aby kierować zachowaniem przez cały stos, w tym routing (dostarczany przez Rails) i bez kodowania (to zależy od Ciebie). Dzięki specyfikacjom zamówienia możesz:
- określić jedno żądanie
- określić wiele żądań na wielu kontrolerach
- określić wiele żądań w wielu sesjach
Wiem, że specyfikacje funkcji używają Kapibary, a specyfikacje żądań nie. Ale to raczej nie zasługuje na różne koncepcje.
źródło
"GET /login"
blok opisu z oczekiwaniami wit
blokach takich jakexpect(response.status).to eq(200)
iexpect(response).to render_template(:new)
, lub w blokudescribe "POST /sessions"
acontext "with valid credentials"
, zexpect(response).to redirect_to(user)
ifollow_redirect!; expect(response.body).to include("Signed in")
visit users_path
) Lub zakodowanych na stałe ciągów znaków (visit '/users'
) ?. Osobiście wolę nie używać żadnych wewnętrznych elementów aplikacji w tego rodzaju specyfikacjach.