首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未初始化常量Sorcery::TestHelpers::Rails::Controller (NameError)

未初始化常量Sorcery::TestHelpers::Rails::Controller (NameError)
EN

Stack Overflow用户
提问于 2015-09-16 00:51:05
回答 1查看 500关注 0票数 0

我尝试测试巫术gem的登录方法,但我得到了一个错误。在我的rspec测试中,我使用factory girl作为工厂。我想要做的就是添加一个用于登录之前的方法,之后我想测试控制器的操作。

我的spec_helper.rb

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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时出现的错误

代码语言:javascript
运行
复制
Running: spec
/home/user/work/project_name/spec/spec_helper.rb:9:in `block in <top (required)>': uninitialized constant Sorcery::TestHelpers::Rails::Controller (NameError)

我的工作环境:

代码语言:javascript
运行
复制
Rails 3.2, Ruby 1.9.3, rspec - rails 3.3, sorcery 0.8.2
EN

回答 1

Stack Overflow用户

发布于 2015-09-23 18:20:30

经过几个小时的痛苦,我发现了问题所在。

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

代码语言:javascript
运行
复制
RSpec.configure do |config|
 .................................(other stuff)
  config.include Sorcery::TestHelpers::Rails
 ..........................(other stuff)
end

在此之后,在你的规格中使用

代码语言:javascript
运行
复制
@user = User.create
login_user(@user)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32591511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档