我尝试测试巫术gem的登录方法,但我得到了一个错误。在我的rspec测试中,我使用factory girl作为工厂。我想要做的就是添加一个用于登录之前的方法,之后我想测试控制器的操作。
我的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
发布于 2015-09-23 10:20:30
经过几个小时的痛苦,我发现了问题所在。
问题在于,对于0.8.2版的sorcery,您需要向spec_helper.rb添加以下代码:
RSpec.configure do |config|
.................................(other stuff)
config.include Sorcery::TestHelpers::Rails
..........................(other stuff)
end
在此之后,在你的规格中使用
@user = User.create
login_user(@user)
https://stackoverflow.com/questions/32591511
复制相似问题