Ruby on rails 3 - Rails3 + Rspec2:undefined 方法 'authenticate!' for nil:NilClass



当我添加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/

相关内容

  • 没有找到相关文章

最新更新