私は、Hibernate/SQL上に構築された自分のアプリケーション用のAPIをコーディングしています。私はテスト環境とライブ環境の両方にmysqlを使用しています。Junitテスト用データベース
テストのために、私はデータベース、ユーザー、および権限を持っています。だからテストするたびに、私はこれらのステップに従わなければならない:
- データベースからすべてのテーブルを削除する。
- "mvn clean install"を実行し、hibernateはdb内のテーブルを検索し、存在しない場合は作成します。
私のテストでは、mysql dbにガーベジが集まらないようにしたいので、毎回テーブルを削除する必要はありません。この目的のために使用できるいくつかのメモリ内のrdbmsがありますか?また、実行環境に応じてこれとmysqlのどちらを選択するかは、テストまたはライブ用です。
私はこれらのDAOテストを時々実行していますが、通常は単体テストでデータベースアクセスをテストしています。これらのカスケードをメモリー内ではなく実際のデータベースにします。そのようにして、テーブルメタデータをテストするのは、それらにアクセスするコードだけでなく、正しいものです。しかし、DAOにアクセスする他の層のコードのテストでは、それは私が通常スタブしたり、それらを落とさせるのではなく模倣するときです。 –
@Jim:ありがとう、私はあなたの意見を誤解していないように編集しました –