"Uninitialized constant User" 对于 Factory_Girl Rspec
"Uninitialized constant User" for Factory_Girl Rspec
我正在尝试为我的用户模型设置我的 Factory Girl 工厂,但我似乎无法在不出现某种错误的情况下完成它。我现在得到的错误是 "uninitialized constant User"
spec/factories.rb
factory :user do |user|
user.name "John Doe"
user.admin false
user.created_at Time.now
user.updated_at Time.now
user.password_digest nil
user.remember_token nil
user.e_admin nil
user.t_admin true
user.d_admin false
user.activated false
user.activated_at Time.now
end
spec/spec_helper.rb
require 'rails/all'
require 'rspec/rails'
require 'factory_girl_rails'
RSpec.configure do |config|
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
config.filter_run :focus
config.run_all_when_everything_filtered = true
config.disable_monkey_patching!
config.warnings = true
if config.files_to_run.one?
config.default_formatter = 'doc'
end
config.profile_examples = 10
config.order = :random
Kernel.srand config.seed
config.include FactoryGirl::Syntax::Methods
FactoryGirl.definition_file_paths = [File.expand_path('../factories', __FILE__)]
FactoryGirl.find_definitions
end
spec/user_spec.rb
require 'rspec'
require 'spec_helper'
require 'factory_girl_rails'
RSpec.describe 'Log In' do
it 'should log user in' do
var = create(:user)
expect(var.valid?).to eql(true)
end
end
有谁知道我该如何解决这个错误?
1) Log In should log user in
Failure/Error: var = FactoryGirl.create(:user)
NameError:
uninitialized constant User
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/inflector/methods.rb:230:in `constantize'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/inflector/methods.rb:229:in `each'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/inflector/methods.rb:229:in `constantize'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/core_ext/string/inflections.rb:54:in `constantize'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/factory_girl-4.5.0/lib/factory_girl/factory.rb:26:in `build_class'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/factory_girl-4.5.0/lib/factory_girl/factory.rb:37:in `run'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/factory_girl-4.5.0/lib/factory_girl/factory_runner.rb:23:in `run'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/notifications.rb:125:in `instrument'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/factory_girl-4.5.0/lib/factory_girl/factory_runner.rb:22:in `run'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/factory_girl-4.5.0/lib/factory_girl/strategy_syntax_method_registrar.rb:20:in `create'
# ./spec/user_spec.rb:10:in `(root)'
你的工厂应该是这样的
FactoryGirl.define do
factory :user do
name "John Doe"
admin false
created_at Time.now
updated_at Time.now
password_digest nil
remember_token nil
e_admin nil
t_admin true
d_admin false
activated false
activated_at Time.now
end
end
并且在文件夹结构中 - spec/factories/user.rb
我明白了,我必须将 --require rails_helper 添加到我的 .rspec 文件中。然后我不得不删除我的 "FactoryGirl.find_definitions" 行,因为我得到一个错误,我有多个用户工厂。感谢大家的帮助!
我正在尝试为我的用户模型设置我的 Factory Girl 工厂,但我似乎无法在不出现某种错误的情况下完成它。我现在得到的错误是 "uninitialized constant User"
spec/factories.rb
factory :user do |user|
user.name "John Doe"
user.admin false
user.created_at Time.now
user.updated_at Time.now
user.password_digest nil
user.remember_token nil
user.e_admin nil
user.t_admin true
user.d_admin false
user.activated false
user.activated_at Time.now
end
spec/spec_helper.rb
require 'rails/all'
require 'rspec/rails'
require 'factory_girl_rails'
RSpec.configure do |config|
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
config.filter_run :focus
config.run_all_when_everything_filtered = true
config.disable_monkey_patching!
config.warnings = true
if config.files_to_run.one?
config.default_formatter = 'doc'
end
config.profile_examples = 10
config.order = :random
Kernel.srand config.seed
config.include FactoryGirl::Syntax::Methods
FactoryGirl.definition_file_paths = [File.expand_path('../factories', __FILE__)]
FactoryGirl.find_definitions
end
spec/user_spec.rb
require 'rspec'
require 'spec_helper'
require 'factory_girl_rails'
RSpec.describe 'Log In' do
it 'should log user in' do
var = create(:user)
expect(var.valid?).to eql(true)
end
end
有谁知道我该如何解决这个错误?
1) Log In should log user in
Failure/Error: var = FactoryGirl.create(:user)
NameError:
uninitialized constant User
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/inflector/methods.rb:230:in `constantize'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/inflector/methods.rb:229:in `each'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/inflector/methods.rb:229:in `constantize'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/core_ext/string/inflections.rb:54:in `constantize'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/factory_girl-4.5.0/lib/factory_girl/factory.rb:26:in `build_class'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/factory_girl-4.5.0/lib/factory_girl/factory.rb:37:in `run'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/factory_girl-4.5.0/lib/factory_girl/factory_runner.rb:23:in `run'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/notifications.rb:125:in `instrument'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/factory_girl-4.5.0/lib/factory_girl/factory_runner.rb:22:in `run'
# /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/factory_girl-4.5.0/lib/factory_girl/strategy_syntax_method_registrar.rb:20:in `create'
# ./spec/user_spec.rb:10:in `(root)'
你的工厂应该是这样的
FactoryGirl.define do
factory :user do
name "John Doe"
admin false
created_at Time.now
updated_at Time.now
password_digest nil
remember_token nil
e_admin nil
t_admin true
d_admin false
activated false
activated_at Time.now
end
end
并且在文件夹结构中 - spec/factories/user.rb
我明白了,我必须将 --require rails_helper 添加到我的 .rspec 文件中。然后我不得不删除我的 "FactoryGirl.find_definitions" 行,因为我得到一个错误,我有多个用户工厂。感谢大家的帮助!