Testowanie widoków używających Devise z RSpec

Próbuję uzyskać poprzednio przekazywaną „specyfikację widoku” rspec po dodaniu Deviseuser_signed_in? metoda do danego szablonu widoku. Szablon wygląda mniej więcej tak:

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

Specyfika widokubyło mijanie wygląda mniej więcej tak:

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

Błąd generowany po dodaniu wywołania douser_signed_in? jest:

  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)>'

Istnieje wiele odniesień do tego błędu w sieci, ale nie znalazłem jeszcze wystarczająco opisowej odpowiedzi, aby móc ponownie przejść test. Uważam, że problem ma coś wspólnego z widokiem (który jest testowany w oderwaniu od jakichkolwiek modeli / kontrolerów), nie mając dostępnej kluczowej infrastruktury Devise. Twoje sugestie są mile widziane.

Ponadto, jak test zakończy się pomyślnie, jak przetestuję inną ścieżkę (użytkownik już się zalogował)? Przypuszczam, że będzie bardzo podobny. Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion