これは、私が働く場所や、さまざまなソリューションのようなさまざまな開発者がいても、何度も繰り返されます。
まず、私は本当に、次のような理由
- コードのためのインメモリ・データベースを使用して同様のテストを上回るようには見えません。メモリ内でテストされているテーブルが実際のデータベースに存在しないコードベースが見つかりました。
- データベースはまったく同じではありませんが、メモリ内でhsqlを使用していてメインデータベースがMySQLの場合は、構文に違いがありますが、日付はほんの少しです。私はあなたがASCII Sqlを使用することができますが、あなたが実行しようとしているものではないものをテストしていることを知っています。違いが出てくるでしょう。
私は、トランザクションの開始前の正確な状態でデータベースを残すので、トランザクションのロールバックを優先しますが、何千ものトランザクションがある場合は、テストが大幅に遅くなる可能性があります。
私は時々、データベースのテストの価値を疑問視し、私たちは新鮮なデータベースに統合テストを実行continuos統合を好むんです。そうすれば、私たちはすべてのデータアクセスをカバーします。 単体テストでは、データアクセスレイヤをMockitoまたは同様のモッキングツールでモックします。テスト・データベースをテストは、テスト方法と@After
前に停止した場合でも、変更されませんので
HSQL DBのようなメモリ内のデータベースを使用してみてください。 – Reddy
@Reddy私はそれを最も有効なものと見なすので、別の答えとしてそれを書くべきだと思います。 – bezmax
@Brianは彼の答えで、私はSQLクエリーが正しいことを確認したいと思っており、彼らはMySQL Xプラットフォームで動作します。また、この場合、MySQLサーバへのアクセスは問題ではありません。 – Morvader