データベースにレコードを挿入する Rails の移行があります。カテゴリ モデルは、このレコードに依存します。RSpec は各例の前にデータベースをクリアするため、このレコードは失われ、さらに RSpec は移行からデータベースを生成しないように見えるため、作成されることはないようです。データベースでこのレコードを作成/再作成する最良の方法は何ですか? before(:all) を使用しますか?
2 に答える
6
RSpec がデータベースをクリアするのではなく、Rails の rake:db:prepare タスクが dev データベースのスキーマ(内容ではない) を *_test db にコピーするということです。
before(:all)
はい、トランザクションは個々の例にラップされているため、使用できますが、単純なフィクスチャ ファイルでも同じことができます。
(この問題には、より複雑な一般的な解決策があります。「開発」サービスと「テスト」サービスが完全に別のインスタンスになるサービス指向アーキテクチャに移行することです。その後、テスト データベース構成を開発データベースに向けることができます。 rake:db:prepare を無効にし、再生成する際に移行からテスト サービスを構築します。その後、移行とデータ変換をテストできます。)
于 2008-11-07T05:21:02.617 に答える
2
私がやりたいのは、data という名前の db/migration にフォルダーを作成し、そこに yml フィクスチャを配置することです。
次に、次のように移行を作成します
デフセルフアップ 下 directory = File.join( File.dirname(__FILE__), "データ" ) Fixtures.create_fixtures( ディレクトリ、「カテゴリ」) 終わり def self.down Category.delete_all 終わり
于 2008-11-07T05:30:17.230 に答える