Rspec testen, ob eine session-variable gesetzt wurde in einer controller-action
Ich habe eine rspec, test, Beiträge zu einer Aktion. In der Aktion, eine session-variable ist definitiv festlegen, aber in meinem controller test, den session-hash ist leer. Wie prüfe ich in einer Rspec testen, um zu sehen, ob die controller-set-die session-variable auf den richtigen Wert?
- Also, was war der eigentliche Grund dafür? (da angekreuzt wurde, eine Antwort aber nicht wirklich erklären)
- Die Antwort war richtig für die Frage, die ich fragte, aber mein problem endete als un-bezogen auf meine Frage
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie access-Sitzung direkt in rspec wie diese:
session[:key]
. Vergleichen Sie einfach, dass mit den von Ihnen gewünschten Wert.Sehen diese. Das Hauptproblem ist, dass die variable
session
ist nicht erreichbar aus dem test-code. Um es zu lösen, fügen Sie die fowling-Linien inspec/spec_helper.rb
:Verwenden Sie keine
before_filter
im controller? Dies könnte der Fall sein, wennbefore_filter
änderungen der Strömung, und Ihr code wird mit der Zuweisung einer Variablen an die Sitzung hat noch nicht einmal ausgewertet.Sie haben zum Beispiel diese Zeile im controller:
Das heißt, wenn Sie nicht angemeldet sind, werden Sie nie geben Sie jede Methode, die in diesem controller. Also die
session
variable wird leer sein.