我有(简化的)工厂定义如下:
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 更好,请提出建议