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, waitSE
public 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<?>)