Я знаю, что на этот вопрос было ответили много раз, но существующие ответы не разрешают мою проблему.Rspec - Вы должны активировать Authlogic :: Session :: Base.controller - я уже пробовал общие предложения
Я хочу запустить мои тесты rspec для контроллеров. Мне нужно аутентифицировать пользователя через Authlogic.
Как многие из вас сказал (в других подобных вопросах), я добавил к spec_helper.rb файла:
require "authlogic/test_case"
include Authlogic::TestCase
и activate_authlogic в перед каждым в мой events_controller_spec.rb:
...
before :each do
activate_authlogic
user = FactoryGirl.create(:user)
UserSession.create(user)
end
...
но работает в RSpec, я получаю всегда сообщение печально известной ошибке:
Failure/Error: UserSession.create(user)
Authlogic::Session::Activation::NotActivatedError:
You must activate the Authlogic::Session::Base.controller with a controller object before creating objects
Вы видите, что к этому плохого?
Любые предложения действительно приветствуются.
Спасибо!
пс.
Версии, используемые: - рельсы 3,2 - RSpec (2.11.0) - RSpec-жильный (2.11.1)
Благодаря Шамир, но он не работает. Я думаю, что первая хорошая, если вы используете модульный тест. Я пробовал Authlogic :: Session :: Base.controller = Authlogic :: ControllerAdapters :: RailsAdapter.new (self), но я получаю «undefined method' cookie_jar »для nil: NilClass». –
Отладка кода, я вижу, что activate_authlogic return nil, глядя на документы Authlogic, он должен вернуть что-то не ноль. Любые другие идеи? –