如何确定自动加载夹具到测试数据库的顺序

时间:2012-04-02 12:58:35

标签: ruby-on-rails fixtures

我有非常复杂的数据结构,需要通过某种特定的顺序将夹具数据加载到数据库中,但我无法找到实现它的方法。

1 个答案:

答案 0 :(得分:0)

我建议调查factory_girl,更换夹具。 factory_girl使用您的模型和关联来创建测试数据,而不是手动创建要加载每个表的数据。来自wiki的示例工厂:

FactoryGirl.define do
  factory :user do
    first_name 'John'
    last_name  'Doe'
    age        { 1 + rand(100) }
  end

  factory :admin, :parent => :user do
    admin true
  end
end

然后在配置测试以使用factory_girl之后,您只需使用以下命令创建模型:

# Saved instance
user = create(:user)

# Unsaved instance
user = build(:user)

如果需要创建大量可重复用于多个测试的数据,可以将所有factory_girl调用包装到test_helper中的一个方法中,该方法可以通过多个测试进行访问。