Як я магу прымусіць падробка вярнуць дадзеныя ў унікальных сьветапоглядзе вызначэння Factory_girl

Мая фабрыка выглядае наступным чынам:

Factory.define :coupon do |c|
  c.title { Forgery(:lorem_ipsum).sentences(3, :random => true) }
end

І мой званок з Rspec выглядае наступным чынам:

coupons = []
5.times {|i| coupons << Factory(:coupon, :starts_at => i.days.ago) }

З майго мадэлі купона У мяне ёсць пацвярджэнне з патрабуе назва павінна быць унікальным. Адзіны спосаб, якім я магу запусціць гэты тэст, робячы гэта ў маёй фабрыцы:

Factory.define :coupon do |c|
  c.title {|i| Forgery(:lorem_ipsum).sentences(3, :random => true) + "#{i}" }
end

Вядома, павінна быць лепш?

2

1 адказы

Гэта, як я хацеў бы зрабіць гэта (выкарыстоўваючы новы завод сінтаксіс дзяўчыны):

FactoryGirl.define do
  factory :coupon do
    sequence(:title)     { |n| Forgery::LoremIpsum.words(n, :random => true) }
    sequence(:starts_at) { |n| n.days.ago } 
  end
end

Затым стварыць купоны ў спецыфікацыі:

coupons = FactoryGirl.create_list(:coupon, 5)
5
дададзена