インメモリ データベースと開発データベースを比較してテストするのはいつですか?
また、関連する副次的な質問として、開発データベースを使用する場合、個別開発データベース、統合開発データベース、またはその両方を使用しますか?
また、++、単体テストの場合、リポジトリ/DAL などのモックアウトよりもインメモリ データベースを使用するのはいつですか?
インメモリ データベースと開発データベースを比較してテストするのはいつですか?
また、関連する副次的な質問として、開発データベースを使用する場合、個別開発データベース、統合開発データベース、またはその両方を使用しますか?
また、++、単体テストの場合、リポジトリ/DAL などのモックアウトよりもインメモリ データベースを使用するのはいつですか?
与えられたテストケースのデータを簡単にシードでき、非常に特定の操作がテストされている場合、メモリ内は単体テストに最適です。実際のデータベースは、データの前提条件がより複雑であり、テストの完了後に基本データを残すことに価値がある統合テストに適しています。
私たちにとって、JUnitテストの「高速」テストスイートで許可するのは、外部の依存関係(データベース、ファイル、ネットワークなど)がないものだけです。これにより、開発者と開発者の両方がスイートを迅速かつ効率的に実行できます。チェックイン時の継続的インテグレーション。絶対にDBに移動する必要がある特定のテストがある場合は、メモリ内のテストが実行する唯一の方法です。
覚えておくべきいくつかのポイント:
あなたの他の質問に関しては、それは本当にあなたの必要性に依存します。別のコードブランチに関係のないスキーマ変更が必要になる場合があるため、経験則として、コードブランチごとに1つの開発データベースを使用します。専用の開発データベースを用意することが重要です。QAチームなどとデータベースを共有しなければならない開発チームの数に驚いています。他のチームに影響を与えたり、他のチームの作業を妨げたりしないように、サンドボックス環境で変更を加えることができることが重要です。あなたはあなたがうまくやっているそれらの要件を満たしています。
私のチームでは、それは開発者マシン上のインメモリであり、継続的インテグレーション サーバー上の実データベースです。