Javaアプリケーションの単体テストに関連する奇妙なエラーが発生しています。
単体テストでは、カスタムデータが事前に入力されたメモリ内のHSQLDBを使用し(自動的にトリガーされる挿入スクリプトを介して)、ORMとしてHibernateを使用してアクセスします。
問題は次のとおりです。単一のクラス(つまり、TestDummyClass.java)で単体テストを開始すると、各メソッドのテスト後にdbが(元の挿入スクリプトから)再作成されます。
複数のテストクラスを含むプロジェクト全体(src / test)で単体テストを起動すると、DBは、各テストメソッドではなく、各テストクラスの最初に初期化されます。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:com/wizche/app-context-test.xml" })
public class TestDummyClass {
.....
}
これは、たとえば、TestDummyClassでDBを変更した場合(つまり、新しいオブジェクトを作成した場合)、新しいオブジェクトは同じクラスの次のテストメソッドのためにそこにとどまるということを意味します。したがって、プロジェクトまたは単一のクラスで開始した場合、アサートは異なるはずです。
なぜこれが起こっているのか誰かが私に説明できますか?clean-dbをいつ復元するかをどのように決定できますか?
注意:私は、テストプロジェクト全体(単体テストに関連するパラメーターがない)のカスタムコンテキスト構成でSpringJUnit4ClassRunnerを使用しています。NB2:SpringEclipseでJUnitを直接起動します