Factory_Girl不生成唯一记录

时间:2013-07-05 21:18:40

标签: ruby-on-rails sequence factory-bot uniqueidentifier

我正在将我的应用程序转换为使用工厂而不是使用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回报的原因。但是,我看不出我错误设置了什么。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

一旦我修复了用户工厂以正确创建相关的许多工厂,我就发现我根据我在模型中定义范围的方式错误地编写了这个工厂。一旦修复,“破损”测试就开始起作用了。