我正在将我的应用程序转换为使用工厂而不是使用 Factory_Girl_Rails 的固定装置。我定义了以下工厂:
factory :requirement do
sequence(:reqTitle) {|t| "Test Requirement #{t}"}
ignore do
categoryName " "
categoryAbbr " "
end
reqText "This is a test general requirement for the purpose of, um, testing things"
status "Approved"
factory :reqWithCat do
category
end
factory :reqWithNamedCat do
category {create(:category, catName: categoryName, catAbbr: categoryAbbr)}
end
factory :reqFromUserRequirement do
user_requirement
end
end
然后,在设置部分,我运行以下代码段:
(0..5).each do |x|
requirement = create(:reqWithCat)
requirement.ind_requirements {|ir| [create(:ind_requirements)]}
end
(0..5).each do |x|
create(:reqWithNamedCat, categoryName: "User Interface", categoryAbbr: "UI")
end
但是,我的测试失败了,显然是因为没有创建记录(例如,需求控制器上的索引测试告诉我,当应该有 10 条记录时返回了 0 条记录)。我在调试模式下运行测试,发现创建的每个需求都具有完全相同的 id 值。此外,每条记录都具有相同的序列值。
我相信重复记录无法保存,这就是我得到 0 回报的原因。但是,我看不到我设置错误的内容。我在这里想念什么?