如何在Rail控制台中使用FactoryGirl中的工厂
我在开发环境中使用rails控制台,我想使用工厂。 我怎样才能访问他们?
我曾尝试require "FactoryGirl"
返回
1.9.3p393 :301 > require "FactoryGirl" LoadError: cannot load such file -- FactoryGirl
为了解决这个问题,请确保在您的Gemfile中指定了工厂女孩gem
group :development, :test do gem 'factory_girl_rails' end
然后bundle install
。
这应该使FactoryGirl类在开发控制台中可用。
希望这可以帮助。
我按照以下方式做到这一点:
-
以沙箱模式在testing环境中启动rails控制台。
rails console test --sandbox
你需要这个有两个原因:
- 您所做的任何更改都会回滚。
- 如果已经有一些种子数据,可能会发生这样的情况:工厂将从1开始序列化属性,但是这些logging可能已经存在。
然后在控制台中:
-
需要FactoryGirl:
require 'factory_girl'
-
加载工厂定义:
FactoryGirl.find_definitions
-
包括FactoryGirl方法以避免在
FactoryGirl
(create
而不是FactoryGirl.create
)前面添加到FG的所有呼叫:include FactoryGirl::Syntax::Methods
PS对于制作gem,您可以在轨道控制台中加载定义:
Fabrication.manager.load_definitions
如果你使用它也require 'faker'
。
您需要使用require 'factory_girl_rails'
,这是Rails正在使用的实际的Gem。 那gem将包括工厂女孩图书馆,使FactoryGirl可用。
你可以这样做,或者像在muttonlamb的回答中那样更新你的Gemfile来启动它。