是否有配置设置全局设置:default_strategy to:build for all factory_girl Factories?

时间:2010-11-29 09:35:34

标签: ruby-on-rails ruby rspec factory-bot

我知道您可以覆盖创建Factory对象的默认策略,如下所示:

Factory.define :person, :default_strategy => :build do
  # stuff
end

Factory.define :person, :default_strategy => :create do
  # stuff
end

# same behavior as the previous factory
Factory.define :person do
  # stuff
end

但我想知道我是否可以在factory_girl配置文件中添加设置,或者可能在/environments/test.rb文件中添加

Factory.define :person do
  # stuff
end

默认情况下构建一个Person对象,默认情况下不创建一个。

2 个答案:

答案 0 :(得分:0)

来自source

module FactoryGirl
  class Factory
    # ...
    def default_strategy #:nodoc:
      @options[:default_strategy] || :create
    end
    # ...
  end
end

默认策略等于作为定义选项传递的策略,否则设置为:create。因此,除非你修补FactoryGirl::Factory#default_strategy,否则似乎不可能为所有工厂设定策略。

答案 1 :(得分:0)

FactoryGirl.use_parent_strategy

关注https://github.com/thoughtbot/factory_girl/pull/961了解详情。