Rails rspec und omniauth (Integrationstest)

8

Meine App Rails 3.2 verwendet OmniAuth und Devise, um sich bei Twitter anzumelden. Das Authentifizierungssystem funktioniert einwandfrei. Ich möchte einen Integrationstest in rspec schreiben, um sicherzustellen, dass alles funktioniert. Mit den Informationen im Wiki habe ich Folgendes geschrieben, aber ich weiß, dass mir Dinge fehlen.

Unter test.rb in config / environments habe ich die folgenden Zeilen

%Vor%

Mein rspec-Test sieht so aus:

%Vor%

Authentifizierung ist der Name meines Modells und das Aufrufen von .uid in der rails-Konsole gibt die Zeichenfolge in Ordnung zurück.

Ich erhalte den folgenden Fehler, wenn ich diesen Test durchführe:

%Vor%

Kann mir jemand helfen, herauszufinden, wie man OmniAuth-Mocks benutzt? Eine Erklärung für warum und wie es funktioniert, würde ebenfalls geschätzt werden.

    
mehulkar 16.03.2012, 02:07
quelle

4 Antworten

14

Ich stoße auf etwas Ähnliches.

Nach dem Ändern meines Mock-Objekts von der Verwendung von Symboltasten:

%Vor%

zur Verwendung von String-Schlüsseln:

%Vor%

es hat funktioniert.

Und hast du

? %Vor%

irgendwo in Ihrem Testfall?

    
Chris 04.04.2012, 20:53
quelle
6

Haben Sie versucht, diese beiden Zeilen nach spec_helper.rb zu verschieben?

%Vor%

Fügen Sie in Ihrer Testdatei auch folgenden Block vor:

%Vor%

Sie können mehr Informationen über diesen Link finden: Ссылка

    
Miro 28.03.2012 21:18
quelle
1

Ausgewählte Lösung funktioniert nicht für mich. Meine Lösung bekomme ich von Ссылка und offizieller Dokumentarfilm Ссылка hier:

%Vor%     
izumeroot 28.03.2014 06:10
quelle
1

Ich schlage vor, diese Antwort

Kurz gesagt ...

  • Richten Sie den Mock
  • ein
  • Machen Sie die Anfrage
  • Testen Sie den Code, der dem Rückruf zugeordnet ist

Zum Beispiel: Testen Sie die Sitzung ['uid'] wurde gesetzt (obwohl ich optiere, nur das zu testen, was der Benutzer sieht, oder eher nicht sieht)

Mein Code ...

config / environments / test.rb

%Vor%

Spezifikation / Merkmale / sign_in_feature_spec.rb

%Vor%

Lassen Sie mich wissen, ob / wie ich diese Lösung (und meinen Code!) verbessern kann.

    
brntsllvn 23.09.2015 23:45
quelle