I have the following factory:
factory :product, class: Product do
name Faker::Commerce.product_name
description Faker::Lorem.paragraph
price Faker::Number.number(3)
end
When I call FactoryGirl.create_list(:product, 3) it inserts in the database the same product with only a different id. I would like to have a different name, description and price for each of the products.
Do you guys know a solution to this problem? Thanks!
name, description, and price are being treated as static attributes; this means the value is calculated once (when the factories are loaded) and will never change (and the reason why the data is the same for each instance of Product.
Instead, wrap the values in a block:
factory :product, class: Product do
name { Faker::Commerce.product_name }
description { Faker::Lorem.paragraph }
price { Faker::Number.number(3) }
end
Every time the factory is run, this block gets executed - and in the case of Faker, that means it'll generate a new value.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With