2012-04-27 15 views
0

私は通常Factory Girlを好む一方で、私は現在作業中のアプリケーションをテストするために既存のフィクスチャを使用する必要があります。レールで同じモデルの複数のフィクスチャセットをロードする方法

問題は、テスト依存のフィクスチャセットを使用する必要があることです。つまり、実行中のテストによってロードする必要のある同じモデルに対して複数のセットがあることです。

旧式のレール0.xには、これを行うためのプラグインが2つありました。 Rails 3以上で同じことを達成するにはどうすればよいですか?

ありがとうございます

+1

これはと重複して表示されます。http://stackoverflow.com/questions/7894781/multiple-fixture-sets-in-rails –

答えて

0

ファクトリを呼び出してレコードを作成するスクリプトファイルを作成できます。テストにスクリプトを必要とします。

+0

あなたは一例として、そのようなスクリプトを提供することができればそれは素晴らしいことですで開始する。 – Topo

+0

この例は明らかであると考えました。 FactoryGirl.create(:model1) FactoryGirl.create(:model2、:attr1 => FactoryGirl.create(:model3)) –

0

あなたはファクトリーガールのファンだと言いますが、私はそれがどれほど素晴らしいのかを売る必要はありません。

なぜこれらの器具を工場に変換しないのですか? Convert Fixtures into Factory Girl in Railsの助けが必要です。

あなたはファクトリー・ガールの工場として、あなたのデータを持っていたら、私は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 
+0

こんにちはジェームズとタンクは、回答の起草に費やしていました。それにもかかわらず、問題はテスト固有のフィクスチャをロードする方法であり、フィクスチャを置き換えるためにファクトリーガールを使用する方法ではありません。言ったように、私はいくつかのプロジェクトでファクトリーガールのメリットを評価しましたが、最近はフィクスチャを使用することを好みます。 – Topo

関連する問題