Ok, also ich bin in ein sehr seltsames Problem geraten, direkt verbunden mit vor Blöcken. Ich mache einen Integrationstest über Watir und RSpec. Für einen einfachen Test, um zu überprüfen, ob Benutzer eine Anmeldung durchführen kann, erstelle ich einen 'Benutzer' Datensatz in der Datenbank mit Hilfe von Factory_Girl.RSpec: eingehende Unterschiede zwischen vor (: alle) und vorher (: jeweils)
Also habe ich den folgenden Code:
before(:each) do
@user = Factory(:user)
end
if "should perform a login" do
# do stuff
end
In do stuff
ich einen Browser aufrufen und sehen, wie der Benutzer anmelden will. Leider kann er das irgendwie nicht - "Benutzername ist nicht gültig".
Nach einigen Untersuchungen entdeckte ich, dass, wenn ich den Code zum Erstellen von Benutzer in before(:all)
Block, alles magisch funktioniert. Wie ist das? Was ist der Unterschied zwischen :all
und :each
in diesem Zusammenhang? Außerdem, wenn ich den Code zum Erstellen des Benutzers tatsächlich in den Testkörper legte, funktioniert es immer noch nicht (d. H. Der Benutzer wird irgendwie nicht zur Datenbank oder etwas hinzugefügt).