如何每次生成不同的属性

时间:2017-10-11 15:30:00

标签: factory-bot

在我的代码中,100个商店共享相同的属性。

我认为每次都应该创造一个不同的。

(1..100).each do
  store_attr = FG.attributes_for :store
  store_attr[:account] = accounts.sample
  stores << Store.create(store_attr)
end

FactoryGirl.define do
  factory :store do
    name Faker::Company.name
    latitude 1.5
    longitude 1.5
    street Faker::Address.street_address
    city Faker::Address.city
    state Faker::Address.state
    zip_code Faker::Address.zip_code
    phone Faker::PhoneNumber.cell_phone
    email Faker::Internet.email
    website "https://#{Faker::Internet.domain_name}"
    account nil
    factory :complete_store do
      name 'store_with_account'
      account
    end
  end
end 

1 个答案:

答案 0 :(得分:1)

我相信你需要将它们放在一个区块内 -

street { Faker::Address.street_address }

否则它们只会生成一次并重用于所有实例。您可以阅读更多here