テストを実行する前にSpringコンテキストの最新バージョンを強制する方法 質問する

テストを実行する前にSpringコンテキストの最新バージョンを強制する方法 質問する

私は統合テストを書くために を使用しますSpringJUnit4ClassRunner。また、@DirtiesContextコンテキストを壊れた状態のままにして、問題なく動作するテストにも を使用します。

しかし、今では、静的イニシャライザで重要な SystemProperty を設定するテストがあり、それが Spring コンテキストで使用されます。これも、テストが単独で実行される場合は正常に機能します。しかし、他のテストと一緒にテストを実行すると、Spring コンテキストはそのプロパティ設定なしで既に作成されており、新しいテストによって再利用されます。

テストで Spring コンテキストを強制的に新規作成し、変更されたシステム プロパティを使用するにはどうすればよいでしょうか?

ベストアンサー1

Spring 4.2以降では、ダーティーコンテキストアノテーションは次の新しいフェーズをサポートします。前のクラス各テスト方法の前そして前のメソッドたとえば、次のように実行できます。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(...)
@DirtiesContext(classMode = ClassMode.BEFORE_EACH_TEST_METHOD)
public class MyTest {
   ..
}

おすすめ記事