In unserer App rails 3.1.4 wird rspec
verwendet, um die öffentliche Methode require_signin
im Application Controller zu testen. Hier ist die Methode require_signin:
Hier ist der Code rspec
:
Das obige rspec
erzeugt einen riesigen mehrseitigen Fehler, der wie folgt beginnt:
Was könnte mit dem rspec
Code falsch sein? Vielen Dank.
Ich habe diesen Fehler gefunden und festgestellt, dass ich eine Umleitung auf dem Controller ausgelöst habe, indem ich eine Hilfsmethode aufgerufen habe, die ich testen wollte, aber ich habe noch keine Testanfrage instanziiert. Der Aufruf von get :index
vor dem Aufruf der Erwartung löste den Fehler.
Wenn Sie die Aktionsmechanik überprüfen möchten, sollten Sie should_receive
vor einem send
Aufruf wie diesem verwenden
Vielleicht nicht ganz nützlich, aber ich kam hierher, nachdem ich denselben Fehler bekommen habe. Ich habe mit einer bestandenen Testsuite begonnen, einige Änderungen vorgenommen und dann Fehler wie:
erhalten %Vor%Nachdem ich den Fehler näher betrachtet habe, ist mir aufgefallen, dass irgendwo gesagt wurde:
%Vor% Ich hatte gerade die Option :confirmable
in Devise hinzugefügt und festgestellt, dass alle Benutzer, die ich erstellt habe, die ich anmeldete, unbestätigt waren und sich daher nicht erfolgreich anmelden konnten. Ich musste confirmed_at Time.now
hinzufügen. zu meiner Fabrik- / Vorrichtungsschaffung für Benutzer. In Ihrem Beispiel scheint es, als ob Sie versuchen, zu testen, wenn Sie nicht eingeloggt sind, also bin ich mir nicht sicher, ob dies notwendig ist.
Tags und Links ruby ruby-on-rails http rspec2 ruby-on-rails-3.1