在生产中运行同一对象的多个工厂

时间:2018-10-17 21:50:17

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

在工作中,我们正在使用Ruby 2.3.4,Rails 4.2.7和FactoryGirl 4.0.0。我们在基础工厂中遇到了太多特征的问题。我们已经启动了一个替换它们的项目,并牢记了一个模式,但是我们需要能够在原始工厂保持活动状态的同时将新工厂逐步添加到生产代码中。

有什么合理的方法可以做到这一点吗?

这个问题Running two spec folders in Rails with RSpec似乎也有相同的问题,但是单独的分支机构对我们来说不是可行的解决方案。

1 个答案:

答案 0 :(得分:0)

第一个示例here可能就是您想要的。

在最新版本的factory-bot上,您可以像这样设置并发工厂:

factory :orignal_class do
  text 'original text'
end

factory :new_class_factory, class: OriginalClass do
  text 'this will be used instead when creating new_class_factory'
end

当您调用第二个工厂时,它仍然与第一个工厂属于同一类,但是将使用其工厂中定义的字段代替原始工厂。