Тестирование представлений, которые используют Devise с RSpec

Я пытаюсь получить ранее проходивший rspec "посмотреть спец » пройти после добавления Devise'suser_signed_in? метод к рассматриваемому шаблону. Шаблон выглядит примерно так:


  Welcome back.

  Please sign in.

Спекуляция взгляда чтобыло прохождение выглядит примерно так:

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

Ошибка, которую он выдает после добавления вызоваuser_signed_in? является:

  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 '

В Интернете есть множество ссылок на эту ошибку, но мне еще предстоит найти достаточно описательный ответ, чтобы я мог снова сдать свой тест. Я полагаю, что проблема как-то связана с представлением (которое тестируется изолированно от любых моделей / контроллеров), не имеющим какой-либо ключевой инфраструктуры Devise. Ваши предложения приветствуются.

Кроме того, после прохождения теста, как я могу проверить другой путь (пользователь уже вошел в систему)? Я предполагаю, что это будет очень похоже. Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос