ChatGPT解决这个技术问题 Extra ChatGPT

FactoryBot:多次创建同一个对象

在我的 RSpec 测试之一中,我从同一个工厂定义创建多个对象

例如

FactoryBot.create(:model_1)
FactoryBot.create(:model_1)
FactoryBot.create(:model_1)

是否有 factory_bot 提供的一种方法可以在一行中执行此操作

我知道我能做到

3.times {FactoryBot.create(:model_1)}

但我正在寻找 factory_bot 提供的用于创建同一模型的多个对象的东西。

Note: FactoryBot was originally named FactoryGirl


n
notapatch

您可以像这样创建一个列表(因此一次创建 x 个对象):

FactoryBot.create_list(:model_1, 3)

文档 lives here

Note: FactoryBot was originally named FactoryGirl


如果我想创建多个像 FactoryGirl.create(:model_1, :type => "something") 这样的对象怎么办?
查看文档,您可以将参数哈希作为第三个参数传递
n
notapatch
FactoryBot.create_list :factory_name, 2, attribute_name: 'value'

简单且最佳的移动方式。

如果不需要相同的属性名称,您可以忽略,并使用序列代替。


n
notapatch

不确定自发布答案以来是否已更新,但现在您将执行以下操作

FactoryBot.create_list(:model_1, 3)

Getting Started


C
Cody Elhard

如果您需要对带有验证的模型执行此操作,我可以在测试中执行以下操作。

10.times do |i|
  create(
    :object,
    property: i
  )
end

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅