2012-04-02 3 views
0

フィクスチャ・データを特定の順序でデータベースにロードする必要がある非常に複雑なデータ構造がありますが、それを行う方法がわかりません。テスト用データベースにオートローディング・フィクスチャの注文を決定するには

+0

フィクスチャのデータは、テーブルの内容にしてください。なぜ、テーブルにどのような順序で入力されるのかは重要ですか? –

+0

たとえば、つぶやきはuser_id(外部キー)で追加されましたが、ユーザーテーブルには全くデータがありません。このデータはエラーの原因になるでしょうか? – Hillman

+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のメソッドにラップすることができます。