Сбой спецификации контроллера 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 или какой другой метод я могу использовать для прохождения авторизации в спецификации моего контроллера?