クラス SpringMethodRule
- 実装されたすべてのインターフェース:
MethodRule
SpringMethodRule
は、カスタム JUnit 4 MethodRule
であり、TestContextManager
および関連するサポートクラスとアノテーションを使用して、標準 JUnit テストで Spring TestContext フレームワークのインスタンスレベルおよびメソッドレベルの機能をサポートします。SpringJUnit4ClassRunner
とは対照的に、Spring のルールベースの JUnit サポートには、Runner
から独立しているため、JUnit の Parameterized
などの既存の代替ランナーや MockitoJUnitRunner
などのサードパーティランナーと組み合わせることができるという利点があります。
ただし、SpringMethodRule
は SpringJUnit4ClassRunner
のインスタンスレベルおよびメソッドレベルの機能しかサポートしていないため、SpringJUnit4ClassRunner
と同じ機能を実現するには、SpringMethodRule
を SpringClassRule
と組み合わせる必要があります。
使用例
public class ExampleSpringIntegrationTest {
@ClassRule
public static final SpringClassRule springClassRule = new SpringClassRule();
@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();
// ...
}
以下のリストは、現在 SpringMethodRule
によって直接または間接的にサポートされているすべてのアノテーションを構成しています。(追加のアノテーションは、さまざまな TestExecutionListener
または TestContextBootstrapper
実装によってサポートされる場合があることに注意してください)
注意 : このクラスには、JUnit 4.12 以上が必要です。
警告 : JUnit ルールの欠点により、SpringMethodRule
は、テストクラスのインスタンス化の直後ではなく、@Before
ライフサイクルメソッドの前にテストインスタンスを準備します。さらに、SpringMethodRule
は、TestExecutionListener
API の beforeTestExecution()
および afterTestExecution()
コールバックをサポートしていません。
- 導入:
- 4.2
- 作成者:
- Sam Brannen, Philippe Marschall
- 関連事項:
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明apply
(Statement base, FrameworkMethod frameworkMethod, ObjectSE testInstance) 提供されたbase
ステートメントに、Spring TestContext フレームワークの インスタンスレベルおよびメソッドレベルの機能を適用します。
コンストラクターの詳細
SpringMethodRule
public SpringMethodRule()
メソッドの詳細
apply
提供されたbase
ステートメントに、Spring TestContext フレームワークの インスタンスレベルおよびメソッドレベルの機能を適用します。具体的には、このメソッドは、
TestContextManager
でprepareTestInstance()
、beforeTestMethod()
、afterTestMethod()
メソッドを呼び出します。Spring のタイムアウトと繰り返しが発生する可能性があります。さらに、このメソッドは、現在の実行環境でテストが有効になっているかどうかを確認します。これにより、一致しない
@IfProfileValue
アノテーションを持つメソッドが完全に実行されなくなり、TestExecutionListeners
でprepareTestInstance()
メソッドの実行がスキップされます。- 次で指定:
- インターフェース
MethodRule
のapply
- パラメーター:
base
- このルールを適用する必要があるベースStatement
frameworkMethod
- テストインスタンスで呼び出されようとしているメソッドtestInstance
- 現在のテストインスタンス- 戻り値:
- 提供された
base
を、Spring TestContext フレームワークのインスタンスレベルおよびメソッドレベルの機能でラップするステートメント - 関連事項:
withBeforeTestMethodCallbacks(org.junit.runners.model.Statement, java.lang.reflect.Method, java.lang.Object, org.springframework.test.context.TestContextManager)
withAfterTestMethodCallbacks(org.junit.runners.model.Statement, java.lang.reflect.Method, java.lang.Object, org.springframework.test.context.TestContextManager)
withPotentialRepeat(org.junit.runners.model.Statement, java.lang.reflect.Method, java.lang.Object)
withPotentialTimeout(org.junit.runners.model.Statement, java.lang.reflect.Method, java.lang.Object)
withTestInstancePreparation(org.junit.runners.model.Statement, java.lang.Object, org.springframework.test.context.TestContextManager)
withProfileValueCheck(org.junit.runners.model.Statement, java.lang.reflect.Method, java.lang.Object)