Nach einiger Zeit, Gurke & RSpec BDD zu tun, erkannte ich, dass viele meiner Cucumber-Funktionen nur höhere Ansichtstests sind.Wann sollte ich Views im Gurken- und RSpec-Workflow separat testen?
Wenn ich anfange, mein Szenario zu schreiben, und dann zu RSpec gehe, schreibe ich nie die Ansichtsspezifikationen, da ich nur einen Teil des Szenarios kopieren und einfügen könnte, was eine hässliche Duplikation wäre.
Nehmen Sie dieses Szenario zum Beispiel
Scenario: New user comes to the site
Given I am not signed in
When I go to the home page
Then I should see "Sign up free"
Ich weiß, dass dies nicht direkt auf die Ansicht Prüfung, sondern separate Ansicht spec Schreiben für die gleiche Sache für mich überflüssig zu überprüfen scheint.
Bin ich näher Gurke falsch? Was genau sollte ich in View Specs testen?
Soll ich schreiben sie für jede einzelne Ansicht, zum Beispiel Testen Ansichten für Aktionen wie
def show
@project = current_user.projects.first
end
oder soll ich einfach komplexere Ansichten testen?
Ist der Konsens allgemein, drei Arten von Tests in einer Rails App zu haben: Funktions-/Akzeptanztests in Cucumber und Modell- und Controllertests in RSpec (zusammen mit Ihrem Vorschlag, dass RSpec-View-Tests manchmal nützlich sein können)? –
Ich würde dieser Aussage zustimmen, ja. Gurke behandelt, was klassische Akzeptanztests sind. RSpec behandelt klassische Tests (Controller-ish) und Unit-Tests (Modell-ish). – bobocopy
Nein. Diese sollten in Gurkengeschichten sein. View specs sind zu 100% nutzlos, da der Umfang nicht ausreicht. –