【问题标题】:Requiring module in Rspec in rails 4 application在 Rails 4 应用程序中需要 Rspec 中的模块
【发布时间】:2015-02-19 22:03:06
【问题描述】:

我正在尝试在 Rspec 中包含其他设计助手,但收到以下错误:

rails_helper.rb:56:in `block in <top (required)>': uninitialized constant ControllerMacros (NameError)

rails_helpers.rb 中的第 56 行是我拥有的 config.include ControllerMacros 行。我已尝试使用其他 SO 帖子中发布的解决方案来解决此问题,但似乎无法使其正常工作。我知道这可能是一个需要订单的问题,但无法整理出正确的订单。

rails_helper.rb

ENV["RAILS_ENV"] ||= 'test'
require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rails'
require 'capybara/rspec'
require 'devise'
ctiveRecord::Migration.maintain_test_schema!

RSpec.configure do |config|
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.use_transactional_fixtures = true
  config.infer_spec_type_from_file_location!
  config.include Capybara::DSL
  config.include Devise::TestHelpers, :type => :controller
  config.include ControllerMacros, :type => :controller
end

spec/support/controller_macros.rb

module ControllerMacros
  def login_business
    before(:each) do
      @request.env["devise.mapping"] = Devise.mappings[:business]
      business = FactoryGirl.create(:business)
      buisness.confirm!
      sign_in business
    end
  end
end

spec/business_account_controller_spec.rb 需要'spec_helper' 需要'rails_helper'

describe BusinessAccountController do
  login_business

  it "should have current user" do
    expect(subject).to_not be_nil
  end
end

【问题讨论】:

  • 您需要在您的rails_helper 中要求它。我将所有模块放在 /spec/support 中,然后将 Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } 放在 rails_helper 的顶部
  • @CWitty 这就是解决方案。如果需要,您可以将其作为正式答案发布吗?如果没有,我稍后会回复您分享的解决方案。谢谢!
  • 已添加,很高兴我能提供帮助

标签: ruby-on-rails ruby-on-rails-4 rspec


【解决方案1】:

您需要在您的rails_helperrequire。我将所有模块放在/spec/support 中,然后将Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } 放在rails_helper 的顶部

【讨论】:

    猜你喜欢
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 2011-04-16
    • 2014-11-22
    • 2023-04-08
    相关资源
    最近更新 更多