Factory_Girl not generating unique records

走远了吗. 提交于 2019-12-25 12:54:47

问题


I'm converting my application over to use factories instead of fixtures with Factory_Girl_Rails. I have the following factory defined:

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

Then, in the setup section, I run the following snippet:

(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

However, my tests are failing, apparently because records aren't being created (for instance, the index test on the requirements controller tells me that there 0 records returned when there should be 10). I run the tests in debug mode, and discover that every requirement created has the exact same id value. Also, each record has the same sequence value.

I believe the duplicate records are failing to save, which is why I'm getting a 0 return. However, I can't see what I've set up incorrectly. What am I missing here?


回答1:


Once I fixed the user factories to create the related many properly, I then discovered that I had written this factory incorrectly based on the way I was defining scopes in my models. Once that was fixed, the "broken" test began working.



来源:https://stackoverflow.com/questions/17496991/factory-girl-not-generating-unique-records

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!