关于Rails上的ruby:Rspec无法加载支持文件

Rspec not loading support files

我有这个文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 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文件中,有以下行:

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

但是当我运行rspec时,出现类似以下的错误:

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

相关的函数位于support/auth_macros中,我假设它将由我的spec_helper中的require语句拾取。

有什么想法吗?


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

更新:

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