Stubbing Warden на контроллерах
У меня проблема с тестированием моих контроллеров и использованием Warden.
Все примеры указывают на заглушкуrequest.env['warden']
, Это вызывает проблемы в моих контроллерах, когда я звонюenv['warden']
, который затем возвращаетnil
.
Для грубого примера, используя это:
request.env['warden'] = double(Warden, :authenticate => nil,
:authenticate! => nil,
:authenticated? => false)
И простой фильтр перед этим:
before_filter do
redirect_to new_user_session_url unless env['warden'].authenticated?
end
Я получаюnil
.
Мне только удалось заставить это работать, используяcontroller.env['warden'] = ...
и это работает. Это имеет смысл, поскольку он находится прямо на уровне контроллера, поэтому я думаю, что мой вопрос в том, что не сработает в приведенных ниже примерах.
У меня есть это в моемspec_helper
:
config.include Warden::Test::Helpers
Любая помощь будет отличной!