Hexerei-Authentifizierungs-Juwel: Ссылка
Der Ersteller von Sorcery stellt eine Beispiel-Rails-App mit den Hexcery-Testhelfern zur Verfügung, die in den Test :: Unit-Funktionstests enthalten sind: Ссылка
%Vor% Aber ich kann nicht herausfinden, wie login_user
in meinen RSpec-Controller-Spezifikationen funktioniert.
Hier ist der relevante Code in dem Zauberei-Juwel bezüglich des obigen Fehlers: Ссылка
%Vor% Laut der Dokumentation von Sorcery " Testen in Rails 3 " habe ich tatsächlich% co_de hinzugefügt % zu meinem include Sorcery::TestHelpers::Rails
.
Der Hexer-Testhelfer spec_helper.rb
wirkt auf login_user
, aber ich erhalte den Fehler, weil @controller
in meiner Controller-Spezifikation @controller
ist. Hier ist meine Spezifikation:
FWIW, ich habe viel Zeit darauf verwendet, nach einer Antwort auf dieses Problem zu suchen. Ich verwende Capybara und RSpec. Wie sich herausstellt, müssen Sie sich manuell einloggen, um Sorcery zu verwenden, damit die Anmeldung funktioniert.
Ich habe einen Gist zum Erstellen von Integrationstests mit Sorcery / Rspec / Capybara erstellt: Ссылка
Sie müssen die Hexer-Testhelfer in Ihren spec_helper aufnehmen
%Vor%Sieh dir das Zauberei-Wiki an: Ссылка
In der Beispiel-App "rails" erfolgt dies unter Ссылка
Haben Sie weitere Controller-Spezifikationen in demselben Ordner, die erfolgreich bestanden wurden? RSpec mischt normalerweise die erforderlichen Komponenten für den Controller-Test für die Spezifikationen im Ordner "spec / controllers".
Sie könnten versuchen, dies explizit als eine Controller-Spezifikation zu markieren, indem Sie
schreiben %Vor%Ich habe dieses Dilemma gerade selbst erlebt und zeichne von den Eingaben von dannu, diwalak und Birdlevitator (in dieser Ausgabe: rail3 / rspec / devise : rspec-Controller-Test schlägt fehl, wenn ich einen Dummy hinzufügen = subject.current_user.inspect ) Ich denke, ich kann eine Lösung sehen.
Ich habe mit einer vom Standard rails 3 rspec generierten Ressource aus dem Befehl 'rails generate scaffold' gearbeitet. Hier ist die Controller-RSPEC-Datei, nachdem ich sie so geändert habe, dass sie mit einem Zauberei-Login funktioniert:
%Vor%Und ein Ablauf der wichtigen Bits:
Dieses Bit übernimmt die programmatische Anmeldung (ignorieren Sie die Vor- und Nachnamenattribute, sie sind spezifisch für die Lösung, die ich erstelle):
%Vor%Dieses Bit enthält Sitzungsinformationen / Schlüsseldaten:
%Vor%Wie diwalak schreibt, müssen wir das zur Datei spec_help.rb hinzufügen:
%Vor%Und das ist es - hat bei mir irgendwie funktioniert:)
Tags und Links ruby ruby-on-rails-3 rspec sorcery