使用FactoryGirl运行rspec时出现“ nameError:未初始化常量”错误,但是当我通过运行Rails C测试在控制台内部调用FactoryGirl.build时,它可以正确识别FactoryGirl。
这是rspec的输出:
Failures:
1) create user test
Failure/Error: FactoryGirl.build(:user)
NameError:
uninitialized constant User
# /Users/rapha/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/inflector/methods.rb:261:in `const_get'
# /Users/rapha/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/inflector/methods.rb:261:in `block in constantize'
# /Users/rapha/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/inflector/methods.rb:259:in `each'
# /Users/rapha/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/inflector/methods.rb:259:in `inject'
# /Users/rapha/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/inflector/methods.rb:259:in `constantize'
# /Users/rapha/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/core_ext/string/inflections.rb:66:in `constantize'
# /Users/rapha/.rvm/gems/ruby-2.2.3/gems/factory_girl-4.5.0/lib/factory_girl/factory.rb:26:in `build_class'
# /Users/rapha/.rvm/gems/ruby-2.2.3/gems/factory_girl-4.5.0/lib/factory_girl/factory.rb:37:in `run'
# /Users/rapha/.rvm/gems/ruby-2.2.3/gems/factory_girl-4.5.0/lib/factory_girl/factory_runner.rb:23:in `block in run'
# /Users/rapha/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/notifications.rb:166:in `instrument'
# /Users/rapha/.rvm/gems/ruby-2.2.3/gems/factory_girl-4.5.0/lib/factory_girl/factory_runner.rb:22:in `run'
# /Users/rapha/.rvm/gems/ruby-2.2.3/gems/factory_girl-4.5.0/lib/factory_girl/strategy_syntax_method_registrar.rb:20:in `block in define_singular_strategy_method'
# ./spec/model/user_spec.rb:7:in `block (2 levels) in <top (required)>'
Finished in 0.001 seconds (files took 0.31845 seconds to load)
1例,1例失败
/spec/spec_helper.rb:
require 'factory_girl_rails'
RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods
config.before do
FactoryGirl.find_definitions
end
...
end
/spec/rails_helper.rb:
require 'spec_helper'
require 'rspec/rails'
require 'capybara/rspec'
require 'factory_girl_rails'
RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods
...
end
/spec/model/user_spec.rb:
require 'spec_helper'
# Create factory de user
describe "create user" do
it "test" do
u = FactoryGirl.build(:user)
end
end
/ Gemfile:
group :development, :test do
gem 'rspec-rails'
gem 'guard-rspec'
gem 'capybara'
gem 'factory_girl_rails'
end
解决NameError
:
你需要移动FactoryGirl的配置,以/spec/rails_helper.rb
从/spec/spec_helper.rb
。
您需要更换spec_helper
与rails helper
在/spec/model/user_spec.rb
。
请尝试一下。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句