Testen von Ansichten, die Devise mit RSpec verwenden

Ich versuche, eine zuvor übergebene rspec "view spec" nach dem Hinzufügen von Devise's zu übergebenuser_signed_in? Methode auf die betreffende Ansichtsvorlage. Die Vorlage sieht ungefähr so ​​aus:

<% if user_signed_in? %>
  Welcome back.
<% else %>
  Please sign in.
<% endif %>

Die Ansicht spezifiziert daswar Vorbeigehen sieht ungefähr so ​​aus:

require "spec_helper"

describe "home/index.html.erb" do

  it "asks you to sign in if you are not signed in" do
    render
    rendered.should have_content('Please sign in.')
  end

end

Der Fehler, den es nach dem Hinzufügen des Aufrufs erzeugtuser_signed_in? ist:

  1) home/index.html.erb asks you to sign in if you are not signed in
     Failure/Error: render
     ActionView::Template::Error:
       undefined method `authenticate' for nil:NilClass
     # ./app/views/home/index.html.erb:1:in `_app_views_home_index_html_erb__1932916999377371771_70268384974540'
     # ./spec/views/home/index.html.erb_spec.rb:6:in `block (2 levels) in <top (required)>'

Es gibt viele Hinweise auf diesen Fehler im Internet, aber ich muss noch eine Antwort finden, die aussagekräftig genug ist, um meinen Test erneut bestehen zu können. Ich glaube, das Problem hat etwas mit der Ansicht zu tun (die isoliert von allen Modellen / Controllern getestet wird), dass keine wichtige Geräteinfrastruktur verfügbar ist. Ihre Vorschläge werden geschätzt.

Wie würde ich nach erfolgreichem Test den anderen Pfad testen (Benutzer ist bereits angemeldet)? Ich gehe davon aus, dass es sehr ähnlich sein wird. Vielen Dank.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage