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のメソッドにラップすることができます。
フィクスチャのデータは、テーブルの内容にしてください。なぜ、テーブルにどのような順序で入力されるのかは重要ですか? –
たとえば、つぶやきはuser_id(外部キー)で追加されましたが、ユーザーテーブルには全くデータがありません。このデータはエラーの原因になるでしょうか? – Hillman
テストが実行される前のある時点でユーザーテーブルに値が設定されている限り、これは実行しないでください。あなたはそれを試しましたか? –