私は周りを検索しましたが、次のアプローチが可能/良い方法であるかどうかを判断できませんでした. 基本的に私がやりたいことは次のとおりです。
DBUnit を使用してデータを初期化する JUnit テストを作成します。同じ初期データセットから実行される複数のテスト メソッドをそれぞれ実行します。各テスト メソッドの後にロールバックして、最初の setUp 関数の直後の状態に戻します。すべてのテスト メソッドが実行された後、setUp 関数で行われたすべての変更をロールバックします。この時点で、データベース内のデータは、JUnit テスト クラスを実行する前とまったく同じである必要があります。
各テスト ケースの前にデータを再初期化する必要がないのが理想的です。
個々のテスト メソッドをロールバックできましたが、すべてのテスト メソッドの実行後に setUp で行った変更をロールバックできませんでした。
注: CLEAN_INSERT、DELETE などの DBUnit のさまざまな機能を認識しています。Spring フレームワークを使用してデータソースを挿入しています。
レイアウトの例は次のようになります。
public class TestClass {
public void setUp() {
// Calls a method in a different class which uses DBUnit to initialize the database
}
public void runTest1() {
// Runs a test which may insert / delete data in the database
// After running the test the database is in the same state as it was
// after running setUp
}
public void runTest2() {
// Runs a test which may insert / delete data in the database
// After running the test the database is in the same state as it was
// after running setUp
}
// After runTest1 and runTest2 have finished the database will be rolled back to the
// state before any of the methods above had run.
// The data will be unchanged as if this class had never even been run
}
開発データベースでテストを実行しますが、現在データベースにあるデータには影響を与えたくないです。最初に CLEAN_INSERT を実行してデータを初期化しても問題ありませんが、すべてのテスト メソッドを実行した後、データを JUnit テストを実行する前の状態に戻したいと考えています。
前もって感謝します