私は、個々のテストメソッドを実行するにはかなりのデータベース設定が必要なユニットテストをしています。このセットアップには長い時間がかかります。その時点で問題になっていないと思われる理由から、SQLダンプではなくDBをプログラム的に実装する必要があります。Hibernate/Spring/JUnitを使用した複雑なデータベース状態の設定と解除
私が持っている問題は解体です。 dbセットアップ段階で行われたすべての変更を簡単にロールバックするにはどうすればよいですか?
私は現在、Hibernate + Springトランザクションテストサポートを使用しています。これにより、個々のテストメソッドがトランザクションでラップされます。
解決策の1つは、各テスト方法内でdb設定を行うことです。これにより、db設定が自動的にロールバックされるようになります。しかし、各メソッドはデータベースを再作成する必要があるため、テストメソッドは永遠に実行されます。
他のアイデアはありますか?基本的には、db setupを実行し、個々のテストを実行し(実行後にロールバックされるトランザクションでラップされる)、最初のdb setupをロールバックする方法を探しています。これをHibernate/Spring/Junitファッションで動作させるためのアイデアはありますか? Hibernateの「すべてのテーブルを削除する」という同等のコマンドがありますか?
時々私は最も簡単なオプションを忘れています。ボーナスはあなたを指します。 –
解決策としてこれを受け入れることは、個々のテストごとにdb setup/tear downを選択したことを意味しますか? –
私は静的な@BeforeClass Junitメソッドを使って同じクラスで定義された一連のテストのためにdbを一度セットアップしました。しかし、JUnitの@Beforeメソッドでテストごとに行うのは簡単です。 –