ruby-on-rails - Rspec不加载支持文件

标签 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 中的声明.

知道会发生什么吗?

最佳答案

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

更新:

100% 具体:require加载文件并且什么都不做。需要文件后,模块已创建,但不包括在内。您需要将其包含在:include AuthMacros

关于ruby-on-rails - Rspec不加载支持文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24289941/

相关文章:

ruby-on-rails - OpenSSL错误–证书验证失败Authorize.net

ruby-on-rails - ruby 日期比较

ruby-on-rails - 时间戳列是否意味着响应 bool 方法调用?

ruby-on-rails - 有没有办法知道为什么工厂机器人无法保存记录?

ruby-on-rails - 如何在 rspec 中设置请求 header

ruby-on-rails - Rspec-设计-rails : User session

ruby-on-rails - ActiveRecord::Migration 弃用警告 - 要求提供 Rails 版本,但我没有使用 Rails

ruby-on-rails - Rails - 如何使用 link_to 更改数据库中的 bool 值?

ruby-on-rails - RSPEC 不呈现 JSON.jbuilder 文件(缺少模板错误)

ruby-on-rails - 使用重复条目测试 Rails 模型的唯一性