使用相同的创建方法创建多个不同的工厂
Creating multiple different factories using the same create method
所以我有不同的工厂:factory_1、factory_2
他们有不同的特征 trait_1_factory_1, trait_2_factory_1 etc
是否可以使用来自同一命令的特定轨迹创建 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'是创建对象的Model
或class
FactoryBot.create(:factory1)
如果您这样做是为了使规格变干,那么您可以按照以下方式进行操作,而不是像上面那样进行操作:
[
[:factory_1, traits_1_factory_1],
[:factory_2, traits_1_factory2]
].each do |factory|
FactoryBot.create(*factory)
end
在array
中存储多个factories
并迭代它。
所以我有不同的工厂:factory_1、factory_2 他们有不同的特征 trait_1_factory_1, trait_2_factory_1 etc
是否可以使用来自同一命令的特定轨迹创建 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'是创建对象的Model
或class
FactoryBot.create(:factory1)
如果您这样做是为了使规格变干,那么您可以按照以下方式进行操作,而不是像上面那样进行操作:
[
[:factory_1, traits_1_factory_1],
[:factory_2, traits_1_factory2]
].each do |factory|
FactoryBot.create(*factory)
end
在array
中存储多个factories
并迭代它。