RSpec Controller-Spezifikationen schlagen fehl, nachdem der Rails4-Anwendung eine Autorisierung hinzugefügt wurde

Folgend Railscast # 385 & # 386 Ich habe meiner Rails 4-Anwendung eine Berechtigung hinzugefügt (Rails 4.2.6, Rspec-Rails 3.4.2). Nach dem Hinzufügen der Autorisierung schlagen alle meine Controller-Spezifikationen fehl.

Meine Featurespezifikationen sind weiterhin gültig, da ich mich in der Spezifikation als Administrator anmelde, um Aktionen auszuführen, die Besuchern nicht gestattet sind (: Bearbeiten,: Aktualisieren ...). Wenn ich einem Besucher alle Aktionen erlaube, bestehen meine Controller-Spezifikationen. Alle Aktionen, die nur der Administrator ausführen kann, schlagen jedoch in der Controller-Spezifikation fehl.

Der Gerüstgenerator erzeugt ein leeres

  let(:valid_session) { { } }

das steht in den Kommentaren:

# Dies sollte den minimalen Wertesatz zurückgeben, der in der Sitzung enthalten sein sollte, um alle in MyController definierten Filter (z. B. Authentifizierung) zu übergeben.

Ich weiß jedoch nicht, wie ich das konfigurieren soll: valid_session, um die Authentifizierung zuzulassen.

Wenn ich versuche, die Lösung in diesemFrag:

def valid_session
  controller.stub!(:signed_in?).and_return(true)
end

Ich erhalte diesen Fehler:

NoMethodError:
        undefined method `stub' for #<MyController

Da alle Verzweigungspfade der Logik auf einer niedrigeren Ebene (dh der Controller-Spezifikation) als der Feature-Spezifikation getestet werden sollten, wie kann ich dafür sorgen, dass die Controller-Spezifikationen übergeben werden?

Wie konfiguriere ich valid_session oder mit welcher anderen Methode kann ich die Autorisierung in meinen Controller-Spezifikationen übergeben?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage