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.