繁体   English   中英

使用相同的创建方法创建多个不同的工厂

[英]Creating multiple different factories using the same create method

所以我有不同的工厂:factory_1,factory_2他们具有不同的特征trait_1_factory_1,trait_2_factory_1等

可以从同一命令使用特定的特技创建factory_1和factory_2,例如:

FactoryBot.create(:factory_1,traits_1_factory_1,:factory_2,:factory_2,traits_1_factory2)

我尝试了(){} []的不同组合,但似乎不适合我吗? 这有可能吗? 这是Factory.create(:factory_1,traits_1_factory_1)Factory.create等的唯一解决方案。

谢谢

我相信您想在这里使用不同的工厂来创建对象,即当您说Factory.create ,您的意思是FactoryBot.create

不幸的是,我找不到任何直接命令来完成这样的事情。 这是使用Hash和循环的东西。

factories_and_traits = { factory_1: [trait_1_factory_1, trait_2_factory_1],
                         factory_2: [trait_1_factory_2] }

factories_and_traits.each do |factory, traits|
  FactoryBot.create(factory, *traits)
end

不,不能从同一命令创建factory_1和factory_2。

在这里,“ factory1”是创建对象的Modelclass

FactoryBot.create(:factory1)

如果您要这样做是为了使规格变干,则可以按照以下步骤进行操作:

[
  [:factory_1, traits_1_factory_1],
  [:factory_2, traits_1_factory2]
].each do |factory|
  FactoryBot.create(*factory)
end

将多个factories存储在array并对其进行迭代。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM