過去にメモリ内データベースを使用してテストを作成しました。
私が知りたかったのは、Spring、JUnit、Java でメモリ DB を使用してテストを作成することが可能であり、データは各テストの後にロールバックされず、db に保持されるということでした。
基本的に、テストは互いに依存していますか?
何か案は?
テストは独立している必要があります。
しかし、必要に応じて @Rollback アノテーションを試すことができると思います。
試したことはありませんが、トランザクションの実行中にドキュメント仕様で見ました。
データベースの変更をロールバックするかどうかはあなた次第です。
ただし、単体テストは互いに独立している必要があります。
この件に関する最近のDZone 記事からの小さな抜粋:
各テストを他のすべてのテストから独立させる
単体テスト ケースのチェーンを作成しないでください。テスト ケースの失敗の根本原因を特定できなくなり、コードをデバッグする必要があります。また、依存関係が生まれます。つまり、1 つのテスト ケースを変更する必要がある場合、複数のテスト ケースを不必要に変更する必要があります。
@Before および @After メソッドを使用して、すべてのテスト ケースの必要条件ごとにセットアップするようにしてください。@Before または @After で異なるテスト ケースをサポートするために複数のものが必要な場合は、新しい Test クラスを作成することを検討してください。