2011-12-16 13 views
0

私はキュウリ/ RSpecを学んでいるだけです。私のアプリケーションでは、実際に正しく動作する前に、特定のテーブル(カテゴリ、国、price_listなど)に完全に入力する必要があります。これらのテーブルの中には、500行以上が必要なものがあります(すべて必須です)。Rails 2.3.2 - テストテーブルにデータをシードするには?

私は、必要なテーブルのMySQLダンプを作成することを考えていました。&スクリプトを使用すると、それぞれのシナリオを実行する前にテストデータベースにインポートされますが、効率的ではありません。

これを達成するためのベストプラクティスアプローチはありますか?

アドバイスをいただきありがとうございます。

答えて

1

あなたが探しているのはテストフィクスチャです。私はgem fixture_builderをお勧めします。これはコード内のフィクスチャを記述するためのものです。yamlにダンプされ、テスト実行の開始時にデータベースに入ります。

また、テストデータを簡略化する方法を検討することをおすすめします。プロダクションで500の製品コードがあるかもしれませんが、テストで15種類以上の製品のリストを使って、ほとんどの特別なケースをテストできるはずです。 2か国への出荷テストは、100カ国への出荷テストなどと同じくらい効果的です。追跡するのもずっと簡単です。

テスト用の小さなフィクスチャーデータから始めて、本番データベースをテストに入れるのではなく、必要に応じて特別なケースを設定するためのデータを追加します。

+1

この回答を完成させるには、Railsに組み込まれているものも含めて、フィクスチャーの建物の宝石の*トン*があります。一般的なものの1つは[FactoryGirl](https://github.com/thoughtbot/factory_girl)で、もう1つは[Machinist](https://github.com/notahat/machinist/)です。 – RyanWilcox

関連する問題