【发布时间】:2013-05-19 13:25:00
【问题描述】:
我有(简化的)工厂定义如下:
factory :league do
acronym 'NBA'
end
factory :division do
league
end
部门属于联赛。当我定义这个工厂时,我假设将创建 1 个联赛,并且该联赛将被一遍又一遍地重用,以便为部门提供真正的联赛 ID。
相反,我在第二次调用 FactoryGirl.create(:division) 时遇到了错误,因为联盟 acronym 应该是唯一的。
class League < ActiveRecord::Base
validates :acronym, uniqueness: true
end
导致以下测试中断
ActiveRecord::RecordInvalid: 验证失败:首字母缩写词已被使用
我该如何解决这个问题,最好不要在测试设置中创建层次结构?
如果我想要完成的工作比 factory_girl 更好,请提出建议
【问题讨论】:
标签: ruby-on-rails unit-testing factory-bot