我知道这个问题已被多次回复,但现有的答案并不能解决我的问题。
我想为 Controller 运行我的 rspec 测试。我需要通过 Authlogic 对用户进行身份验证。
正如你们中的许多人所说(在其他类似问题中),我在 spec_helper.rb 文件中添加了:
require "authlogic/test_case"
include Authlogic::TestCase
和activate_authlogic在my 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
你能看出上面有什么问题吗?
非常欢迎任何建议。
谢谢!
附言。
使用的版本: - rails 3.2 - rspec (2.11.0) - rspec 核心 (2.11.1)
最佳答案
尝试使用 setup :activate_authlogic
或 Authlogic::Session::Base.controller = Authlogic::ControllerAdapters::RailsAdapter.new(self)
而不是 activate_authlogic
,也许会有帮助
关于ruby-on-rails - Rspec - 你必须激活 Authlogic::Session::Base.controller - 我已经尝试过常见的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14927543/