美好的一天!
在我的测试中创建模型时,我正在尝试创建随机值。使用factory_girl和faker gems
我的gemfile.lock
factory_girl_rails (4.5.0)
factory_girl (~> 4.5.0)
faker (1.6.1)
我将工厂定义如下
FactoryGirl.define do
factory :action do
name Faker::Internet.email
id Faker::Number.digit
ip Faker::Internet.ip_v4_address
old_value Faker::Number.number(7)
end
end
但在我的测试中,当我尝试创建对象时,它们具有相同的属性。
> create :logger
id: 17,
new_value: 3133860,
name: "fidel_murazik@gibson.biz",
ip: "118.247.64.189",
created_at: Tue, 02 Feb 2016 09:12:50 UTC +00:00,
updated_at: Tue, 02 Feb 2016 09:12:50 UTC +00:00>
第二次
> create :logger
id: 18,
new_value: 3133860,
name: "fidel_murazik@gibson.biz",
ip: "118.247.64.189",
created_at: Tue, 02 Feb 2016 09:12:53 UTC +00:00,
updated_at: Tue, 02 Feb 2016 09:12:53 UTC +00:00>
再一次 - 每当我创建一个新对象时,我都试图通过Faker gem随机获取factory_girl的有效属性。
你能帮我解决这个问题吗?
答案 0 :(得分:1)
每次运行时,您都可以使用sequence
生成不同的数据:
FactoryGirl.define do
factory :action do
sequence(:name) { |n| "user_#{n}@factory.com" }
sequence(:id) { |n| Faker::Number.digit + n }
ip Faker::Internet.ip_v4_address
old_value Faker::Number.number(7)
end
end
Btw id
会自动生成,随时删除id
!