当我添加before_filter authenticate_user时,所有的测试都失败了!给我的控制器。我是怎么熬过去的?
谢谢
您必须在测试中登录一个用户。我不知道你使用的认证方法,但我可以大胆猜测一下。如果它是设计的,创建一个spec/support/controller_macros。insert:
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
......
把包括设计::TestHelpers到你的规范http://pupeno.com/2010/09/26/undefined-method-authenticate/