Rspec没有加载支持文件

时间:2014-06-18 15:49:38

标签: ruby-on-rails rspec

我有这个文件:

# support/auth_macros.rb
module AuthMacros
  def login_user
    before(:each) do
      @request.env["devise.mapping"] = Devise.mappings[:user]
      @logged_in_user = FactoryGirl.create(:user, username: "logged_in")
      sign_in @logged_in_user
    end
  end

  def logout_user
    before(:each) do
      sign_out @logged_in_user
    end
  end
end

在我的spec_helper文件中,我有这一行:

Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }

然而,当我运行rspec时,我得到的错误如下:

undefined local variable or method `login_user' for RSpec::ExampleGroups::PostsController::POSTCreate::WhenSignedIn:Class

相关功能位于support/auth_macros,我认为我的require中的spec_helper语句可以选择该功能。

知道可能会发生什么吗?

1 个答案:

答案 0 :(得分:9)

您需要该文件,但该方法包含在模块中。您需要删除包装模块或将其包含在组测试中。

更新

要100%具体:require加载文件而不执行任何其他操作。在需要文件后,模块已创建,但不包括在内。您需要将其包含在:include AuthMacros