Rails3 + Rspec2:未定义的方法`authenticate!'为零:NilClass

时间:2011-04-08 20:34:17

标签: ruby-on-rails-3 testing rspec

当我添加before_filter authenticate_user时,我的所有测试都失败了!到我的控制器。我怎么得到这个?

由于

2 个答案:

答案 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/