Sitzungsobjekt im rspec-Integrationstest

8

Ich verwende rspec und capybara für Integrationstests.

Ist es eine Möglichkeit, Sitzungsobjekte in Anforderungsspezifikationen zu erstellen?

Ich habe eine Ansichtsseite, auf der ich ein Sitzungsobjekt verwende, um seinen Wert zu überprüfen, um selektiven Inhalt anzuzeigen.

Das Problem besteht darin, dass ich in der Anforderungsspezifikation kein Sitzungsobjekt erstellen kann. Hier ist ein Beispiel für die Ansicht:

%Vor%

Und in meiner Anforderungsspezifikation

%Vor%

Aber es wirft mir einen Fehler "undefined Methode 'Sitzung' für Nil: NilClass".

Ich habe auch versucht, Session-Objekte von Capybara zu erstellen. Aber konnte nichts finden.

Gibt es dafür eine Lösung? Ich kann nichts dazu finden, es scheint, dass es nicht möglich ist. Eine kleine Hilfe wird wirklich geschätzt.

    
Anidhya Ahuja 04.01.2012, 11:36
quelle

1 Antwort

3

Die Art und Weise, wie Sie Anforderungsspezifikationen ausführen sollten, ist, die URL zu besuchen, die der Benutzer normalerweise besuchen müsste, um diese Sitzungsvariable zu setzen.

Ich kenne keine andere Möglichkeit, andere vielleicht, als den Session-Cookie von Hand zu setzen. Capybara.current_session.driver.browser.set_cookie , lassen Sie das, aber Sie müssten den Cookie-Wert von Hand erstellen.

    
Frederick Cheung 04.01.2012, 12:30
quelle