public class SpringClassRule extends ObjectSE implements 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 実装によってサポートされる場合があることに注意してください)
注意 : Spring Framework 4.3 以降、このクラスには JUnit 4.12 以上が必要です。
apply(Statement, Description), SpringMethodRule, TestContextManager, SpringJUnit4ClassRunner| コンストラクターと説明 |
|---|
SpringClassRule() |
| 修飾子と型 | メソッドと説明 |
|---|---|
Statement | apply(Statement base, Description description) 提供されている base ステートメントに Spring TestContext フレームワークの クラスレベルの機能を適用します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic Statement apply(Statement base, Description description)
base ステートメントに Spring TestContext フレームワークの クラスレベルの機能を適用します。 具体的には、このメソッドは、このルールで使用される TestContextManager とそれに関連付けられた SpringMethodRule を取得し、TestContextManager で beforeTestClass() および afterTestClass() メソッドを呼び出します。
さらに、このメソッドは、現在の実行環境でテストが有効になっているかどうかを確認します。これにより、一致しない @IfProfileValue アノテーションを持つクラスが完全に実行されなくなり、TestExecutionListeners の beforeTestClass() メソッドの実行がスキップされます。
TestRule の apply base - このルールを適用する必要があるベース Statement description - 現在のテスト実行の 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<?>)