use*_*965 0 ruby rspec ruby-on-rails factory-bot
factory_girl
和factory_girl_rails
Ruby Gems 有区别吗?我有一个反复出现的问题,RSpec测试中出现错误:"未初始化的常量FactoryGirl(NameError)".
有人告诉我,两者之间存在差异(这实在令人困惑),而另一方需要另一方工作或沿着这些方向发展?
我的spec_helper文件包含:
require 'factory_girl'
require 'factory_girl_rails'
Run Code Online (Sandbox Code Playgroud)
我的Gemfile有:
gem 'factory_girl_rails'
Run Code Online (Sandbox Code Playgroud)
这是完整的错误:
uninitialized constant FactoryGirl (NameError)
from /srv/homes/rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.7/lib/rspec/core/configuration.rb:896:in `load'
from /srv/homes/rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.7/lib/rspec/core/configuration.rb:896:in `block in load_spec_files'
from /srv/homes/rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.7/lib/rspec/core/configuration.rb:896:in `each'
from /srv/homes/rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.7/lib/rspec/core/configuration.rb:896:in `load_spec_files'
from /srv/homes/rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.7/lib/rspec/core/command_line.rb:22:in `run'
from /srv/homes/rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.7/lib/rspec/core/runner.rb:80:in `run'
from /srv/homes/rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.7/lib/rspec/core/runner.rb:17:in `block in autorun'
****@epi-stu-hut-shell3:~/projects/project4/spec/factories$
Run Code Online (Sandbox Code Playgroud)
你只需要:
group :development, :test do
gem "rspec-rails"
gem "factory_girl_rails"
end
Run Code Online (Sandbox Code Playgroud)
因为factory_girl_rails自动合并了factory_girl gem并添加了对Rails的支持.
这些宝石同时适用于测试和开发组,因为Rails生成器将在开发中创建存根文件,当然在测试环境中也需要它们.
无需将factory_girl或factory_girl_rails添加到specs/spec_helper.rb文件中.