当我添加 before_filter authenticate_user 时,我所有的测试都失败了!给我的 Controller 。我该如何解决这个问题?
谢谢
最佳答案
您必须在测试中登录用户。我不知道您使用的身份验证方法,但我会大胆猜测。如果它是设计的,创建一个 spec/support/controller_macros.rb 并插入:
module ControllerMacros
def login_user
before(:each) do
@request.env["devise.mapping"] = :user
@user = Factory.create(:user)
sign_in @user
end
end
end
我用factory girl来创建一个工厂,但是你可以随心所欲地做。然后,在您的测试中添加它:
describe AlliancesController do
login_user
describe "GET 'show' without an id" do
......
关于ruby-on-rails-3 - Rails3 + Rspec2 : undefined method `authenticate!' for nil:NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5600487/