Wie kann ich in meinen RSpec-Tests auf Sorcery zugreifen?

8

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.

%Vor%

Hier ist der relevante Code in dem Zauberei-Juwel bezüglich des obigen Fehlers: Ссылка

%Vor%

UPDATE:

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:

%Vor%     
danneu 03.01.2012, 05:32
quelle

5 Antworten

7

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: Ссылка

    
austen 11.04.2012, 14:04
quelle
3

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 Ссылка

Aktualisiert

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%     
diwalak 03.01.2012 16:09
quelle
0

Sie müssen Ihre Benutzererstellung und Anmeldung in einen before (: each) -Block wie folgt einfügen:

%Vor%     
nmott 04.01.2012 13:02
quelle
0

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:)

    
Neil Billingham 07.08.2012 14:17
quelle
-2

Ich bin zu Devise gewechselt, was viel besser dokumentiert ist und ich habe mehr Verständnis für alle Fragen, die ich vielleicht noch habe.

    
danneu 28.01.2012 20:23
quelle