У меня проблема с тестированием моих контроллеров и использованием 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
Любая помощь будет здорово!