FactoryGirl создать список передать несколько значений
если у меня есть эта фабрика:
factory :product, class: Product do
name { Faker::Commerce.product_name }
description { Faker::Lorem.paragraph }
price { Faker::Number.number(3) }
end
Я могу использовать create_list
чтобы создать 2 таких продукта:
FactoryGirl.create_list(:product, 2)
но я хочу передать по умолчанию оба моих продукта, я бы предположил что-то теоретически подобное этому?:
prods = [{:name => "Product 1"},{:name => "Product 2"}]
FactoryGirl.create_list(:product, prods.count, prods)
Я искал некоторое время и не могу найти ответ на этот вопрос, возможно ли использовать элегантное решение, такое как create_list
?
причина, по которой я хотел бы это решение, потому что :product
- Это один из многих детей ассоциации с родительской моделью. Я хотел бы конфигурируемый способ, которым я мог бы создать родительскую фабрику моделей через один FactoryGirl.create
команда и передать все значения, которые я хотел бы для дочерних ассоциаций (через использование черт FactoryGirl и игнорировать блоки). Надеюсь, в этом есть смысл. Я мог бы показать здесь кучу кода, но я считаю, что это обеспечивает достаточный контекст?
1 ответов
вы можете создать список себя:
data = [{:name => "Product 1"},{:name => "Product 2"}]
products = data.map { |p| FactoryGirl.create(:product, p) }
который должен оставить вас с массивом продуктов.