Was ist der konzeptionelle Unterschied zwischen den Funktionsspezifikationen von Rspec und den Anforderungsspezifikationen ?
Aus den Funktionsspezifikationsdokumenten:
Feature-Spezifikationen sind Tests auf hoher Ebene, mit denen Funktionsbereiche über eine Anwendung ausgeführt werden sollen. Sie sollten die Anwendung nur über ihre externe Schnittstelle, normalerweise Webseiten, steuern.
Und für Anforderungsspezifikationen:
Anforderungsspezifikationen bieten einen dünnen Wrapper für die Integrationstests von Rails und sind so konzipiert, dass sie das Verhalten über den gesamten Stapel hinweg steuern, einschließlich Routing (von Rails bereitgestellt) und ohne Stubbing (das liegt bei Ihnen). Mit Anforderungsspezifikationen können Sie:
- Geben Sie eine einzelne Anforderung an
- Geben Sie mehrere Anforderungen auf mehreren Controllern an
- Geben Sie mehrere Anforderungen in mehreren Sitzungen an
Ich weiß, dass Funktionsspezifikationen Capybara verwenden und Anforderungsspezifikationen nicht. Das verdient aber kaum unterschiedliche Konzepte.
quelle
"GET /login"
mit Erwartungen init
Blöcken wieexpect(response.status).to eq(200)
undexpect(response).to render_template(:new)
oder indescribe "POST /sessions"
einemcontext "with valid credentials"
Block mitexpect(response).to redirect_to(user)
undfollow_redirect!; expect(response.body).to include("Signed in")
visit users_path
) oder fest codierte Zeichenfolgen (visit '/users'
) zu verwenden?. Persönlich bevorzuge ich es, keine App-Interna in solchen Spezifikationen zu verwenden.