2

私はいくつかの永続性テストを作成し、データベースに対してマッピングを検証しようとしています。私の問題は(そして、ここで何かを根本的に誤解している可能性があります)

前提条件

  1. データベースは手動で作成され、流動的な状態にあります
  2. 列名が変更、追加、または削除された場合は、マッピングを更新する必要があります
  3. テスト中にデータベース自体に影響を与えたくない

理想的には、現在のデータベース スキーマ (SQL 2008) を取得してメモリ内にレプリケートし、単体テストを安全に実行できるようにしたいと考えています。これにより、テストが終了したときに SQL データベースが変更されずに変更されていないことがわかります。

SQLite In Memory の使用を検討しましたが、正しく理解できれば、マッピングがデータベース自体に対して有効であることを確認するのではなく、マッピング ファイルに基づいてスキーマを生成します。多くの努力?それとも、テストの開始時に新しい SQL 2008 データベースを構築し、最後にそれを分解するというルートをたどるべきですか?

4

1 に答える 1

0

実際の DB ではなくインメモリ コピーを使用すると、実装についてさまざまなことが証明されます。

  • インメモリ コピーを使用すると、インメモリ表現でロジックが正常に動作することを証明する統合テストが高速化されます。たぶん、マッピング目的には問題ありません。
  • 実際の DB を使用すると、統合テストが遅くなり、パフォーマンスの見積もりが得られ、ロジックが実際のもので問題なく機能することが証明されます。明らかに、各テスト/フィクスチャの前後にセットアップして元に戻すには、アドホック テスト DB が必要です。

私の経験では、単体テストにモックとスタブを使用する最初のアプローチを使用しながら、2 番目のアプローチが統合テストでより多くの価値をもたらすことがわかりました。

お役に立てれば。

于 2013-08-27T13:22:24.947 に答える