如何强制 Forgery 返回 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
肯定有更好的方法吗?
My factory looks like this:
Factory.define :coupon do |c|
c.title { Forgery(:lorem_ipsum).sentences(3, :random => true) }
end
And my call from Rspec looks like this:
coupons = []
5.times {|i| coupons << Factory(:coupon, :starts_at => i.days.ago) }
With my Coupon model I have a validation with requires the title to be unique. The only way I am able to run this test is by doing this in my factory:
Factory.define :coupon do |c|
c.title {|i| Forgery(:lorem_ipsum).sentences(3, :random => true) + "#{i}" }
end
Surely there must be a better way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这就是我的做法(使用新的 Factory Girl 语法):
然后在规范中创建优惠券:
This is how I would do it (using the new Factory Girl syntax):
Then creating coupons in a spec: