当我添加before_filter authenticate_user时,我的所有测试都失败了!到我的控制器。我怎么得到这个?
由于
答案 0 :(得分:4)
您必须在测试中登录用户。我不知道你使用的身份验证方法,但我会猜测。如果是设计,请创建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
我使用工厂女孩来创建一个工厂,但你可以随心所欲。然后,在您的测试中添加它:
describe AlliancesController do
login_user
describe "GET 'show' without an id" do
......
答案 1 :(得分:1)
将包含Devise :: TestHelpers包含在您的规范中 http://pupeno.com/2010/09/26/undefined-method-authenticate/