我们可以一次性将多个工厂加载到数据库中吗?

时间:2012-10-30 11:28:36

标签: ruby-on-rails-3 factory-bot testunit

刚开始使用工厂女孩。如果必须将工厂保存到数据库中,则必须运行 FactoryGirl.create()

但有没有办法将工厂集合加载到数据库中而无需在每个工厂上调用create?

如果有任何帮助我使用的是Ruby 1.9.3,Rails 3.2.8和Factory Girl 4.1。

1 个答案:

答案 0 :(得分:1)

如果您需要一堆不同类型的工厂,您只需要单独创建它们。通过将此添加到test_helper.rb

,您可以减少这一点
include FactoryGirl::Syntax::Methods

然后你可以创建这样的工厂:

create(:factory_name)

当然,如果您需要一堆相同类型的记录,您可以像这样创建它们:

5.times { create(:factory_name) }

正如我的评论中所提到的,在初始化测试框架时一举创建所有工厂都会适得其反。 FactoryGirl背后的想法是为每个测试用例或上下文提供所需的数据。这避免了测试之间的依赖关系,这些测试往往会陷入夹具驱动的方法中。