如何在轨道中为同一模型加载多个夹具组

时间:2012-04-27 01:26:04

标签: ruby-on-rails testing fixtures

虽然我通常更喜欢Factory Girl,但我需要使用现有的灯具来测试我正在处理的应用程序。

问题是我需要使用与测试相关的夹具组,即根据我正在运行的测试,我需要加载同一模型的多个集合。

在rails 0.x的旧时代,有几个插件可以做到这一点。如何使用Rails 3 +完成相同的操作?

提前致谢

2 个答案:

答案 0 :(得分:0)

您可以创建一些脚本文件来调用工厂来创建记录。然后需要测试中的脚本。

答案 1 :(得分:0)

你说你是“工厂女孩”的粉丝,所以我不必卖给你这么棒的东西。

为什么不将这些灯具转换为工厂? Convert Fixtures into Factory Girl in Rails应该有所帮助。

在Factory Girl中将数据作为工厂后,我建议您利用其继承功能,如https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md所示:

  

您可以轻松地为同一个类创建多个工厂,而无需通过嵌套工厂重复公共属性:

factory :post do
  title "A title"

  factory :approved_post do
    approved true
  end
end

approved_post = FactoryGirl.create(:approved_post)
approved_post.title    # => "A title"
approved_post.approved # => true
  

您还可以明确指定父级:

factory :post do
  title "A title"
end

factory :approved_post, parent: :post do
  approved true
end