Сбой спецификации контроллера RSpec после добавления авторизации в приложение Rails4

После Railscast# 385 & # 386 Я добавил авторизацию в свое приложение на Rails 4 (rails 4.2.6, rspec-rails 3.4.2). После добавления авторизации все мои спецификации контроллера перестали работать.

Мои технические характеристики все еще проходят, потому что в спецификации я вхожу как администратор для выполнения действий, которые не разрешены посетителям (: edit,: update ...). Если я сделаю все действия, разрешенные посетителю, мои характеристики контроллера пройдут. Однако любое действие, которое может выполнить только администратор, не будет выполнено в спецификации контроллера.

Генератор скаффолда создает пустой

  let(:valid_session) { { } }

что это говорит в комментариях:

# Это должно вернуть минимальный набор значений, который должен быть в сеансе, чтобы пройти любые фильтры (например, аутентификация), определенные в MyController.

Однако я не знаю, как настроить это: valid_session, чтобы позволить аутентификации пройти.

Когда я пробую решение, опубликованное в этомвопрос:

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

Я получаю эту ошибку:

NoMethodError:
        undefined method `stub' for #<MyController

Так как все многие логические пути ветвления должны быть проверены на более низком уровне (то есть спецификации контроллера), а не спецификации функции, как мне получить спецификации контроллера для прохождения?

Как мне настроить valid_session или какой другой метод я могу использовать для прохождения авторизации в спецификации моего контроллера?

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

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