クラス SpringClassRule
- 実装されているすべてのインターフェース:
TestRule
SpringClassRule は、カスタム JUnit TestRule であり、TestContextManager および関連するサポートクラスとアノテーションを使用して、標準の JUnit テストで Spring TestContext フレームワークの クラスレベルの機能をサポートします。SpringJUnit4ClassRunner とは対照的に、Spring のルールベースの JUnit サポートには、Runner から独立しているため、JUnit の Parameterized などの既存の代替ランナーや MockitoJUnitRunner などのサードパーティランナーと組み合わせることができるという利点があります。
ただし、SpringClassRule は SpringJUnit4ClassRunner のクラスレベルの機能しかサポートしていないため、SpringJUnit4ClassRunner と同じ機能を実現するには、SpringClassRule を SpringMethodRule と組み合わせる必要があります。
使用例
public class ExampleSpringIntegrationTest {
@ClassRule
public static final SpringClassRule springClassRule = new SpringClassRule();
@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();
// ...
} 以下のリストは、現在 SpringClassRule によって直接または間接的にサポートされているすべてのアノテーションを構成しています。(追加のアノテーションは、さまざまな TestExecutionListener または TestContextBootstrapper 実装によってサポートされる場合があることに注意してください)
注意 : このクラスには、JUnit 4.12 以上が必要です。
- 導入:
- 4.2
- 作成者:
- Sam Brannen, Philippe Marschall
- 関連事項:
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明apply(Statement base, Description description) 提供されているbaseステートメントに Spring TestContext フレームワークの クラスレベルの機能を適用します。
コンストラクターの詳細
SpringClassRule
public SpringClassRule()
メソッドの詳細
apply
提供されているbaseステートメントに Spring TestContext フレームワークの クラスレベルの機能を適用します。具体的には、このメソッドは、このルールで使用される
TestContextManagerとそれに関連付けられたSpringMethodRuleを取得し、TestContextManagerでbeforeTestClass()およびafterTestClass()メソッドを呼び出します。さらに、このメソッドは、現在の実行環境でテストが有効になっているかどうかを確認します。これにより、一致しない
@IfProfileValueアノテーションを持つクラスが完全に実行されなくなり、TestExecutionListenersのbeforeTestClass()メソッドの実行がスキップされます。- 次で指定:
- インターフェース
TestRuleのapply - パラメーター:
base- このルールを適用する必要があるベースStatementdescription- 現在のテスト実行のDescription- 戻り値:
- 提供された
baseを Spring TestContext フレームワークのクラスレベル機能でラップするステートメント - 関連事項:
getTestContextManager(java.lang.Class<?>)withBeforeTestClassCallbacks(org.junit.runners.model.Statement, org.springframework.test.context.TestContextManager)withAfterTestClassCallbacks(org.junit.runners.model.Statement, org.springframework.test.context.TestContextManager)withProfileValueCheck(org.junit.runners.model.Statement, java.lang.Class<?>)withTestContextManagerCacheEviction(org.junit.runners.model.Statement, java.lang.Class<?>)