Dans l'un de mes tests rspec, je crée plusieurs objets à partir de la même définition d'usine
Par exemple
FactoryBot.create(:model_1)
FactoryBot.create(:model_1)
FactoryBot.create(:model_1)
Existe-t-il une méthode qui factory_bot
prévoit de le faire sur une seule ligne
Je sais que je peux faire
3.times {FactoryBot.create(:model_1)}
Mais je cherche quelque chose qui factory_bot
permet de créer plusieurs objets du même modèle.
Vous pouvez créer une liste comme celle-ci (donc créer x objets à la fois):
FactoryBot.create_list(:model_1, 3)
Documentation vit ici .
FactoryBot.create_list :factory_name, 2, attribute_name: 'value'
Une façon simple et optimale de se déplacer.
Vous pouvez ignorer les noms d'attribut si vous n'en avez pas besoin et utiliser plutôt la séquence.
Je ne sais pas si cela a été mis à jour depuis la publication de la réponse, mais maintenant vous feriez ce qui suit
FactoryBot.create_list(:model_1, 3)
voir Mise en route
Si vous avez besoin de le faire pour un modèle avec validation, j'ai pu faire ce qui suit dans mon test.
10.times do |i|
create(
:object,
property: i
)
end