【问题标题】:uninitialized constant Sorcery::TestHelpers::Rails::Controller (NameError)未初始化的常量 Sorcery::TestHelpers::Rails::Controller (NameError)
【发布时间】:2015-09-15 16:51:04
【问题描述】:

我尝试测试魔法宝石的登录方法,但出现错误。 我在我的 rspec 测试中使用工厂女孩作为工厂。 我要做的就是添加一个让我登录的 before 方法,然后我想测试我的控制器的操作。

我的 spec_helper.rb

require 'factory_girl'

require_relative '../spec/factories/blog.rb'
require_relative '../spec/factories/user.rb'
require_relative '../spec/factories/category.rb'

RSpec.configure do |config|
  config.include FactoryGirl::Syntax::Methods
  config.include Sorcery::TestHelpers::Rails::Controller, type: :controller
  config.include Sorcery::TestHelpers::Rails::Integration, type: :feature
  config.expect_with :rspec do |expectations|
    expectations.include_chain_clauses_in_custom_matcher_descriptions = true
  end

  config.mock_with :rspec do |mocks|
    mocks.verify_partial_doubles = true
  end

end

我的 rails_helper.rb

ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)

abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'spec_helper'
require 'rspec/rails'

RSpec.configure do |config|
  config.infer_spec_type_from_file_location!

  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.use_transactional_fixtures = true
end

我在运行 rspec 时遇到的错误

Running: spec
/home/user/work/project_name/spec/spec_helper.rb:9:in `block in <top (required)>': uninitialized constant Sorcery::TestHelpers::Rails::Controller (NameError)

我的工作环境:

Rails 3.2, Ruby 1.9.3, rspec - rails 3.3, sorcery 0.8.2

【问题讨论】:

    标签: ruby-on-rails rspec ruby-on-rails-3.2 sorcery


    【解决方案1】:

    经过数小时的痛苦,我发现了问题。

    问题在于,对于 0.8.2 版的魔法,您需要在 spec_helper.rb 中添加以下代码:

    RSpec.configure do |config|
     .................................(other stuff)
      config.include Sorcery::TestHelpers::Rails
     ..........................(other stuff)
    end
    

    然后在你的规范中使用

    @user = User.create
    login_user(@user)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 2017-07-10
      • 2022-01-01
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多