クラス SpringJUnit4ClassRunner
- 実装されたすべてのインターフェース:
Describable
、Filterable
、Orderable
、Sortable
- 既知の直属サブクラス
SpringRunner
SpringJUnit4ClassRunner
は JUnit の BlockJUnit4ClassRunner
のカスタム拡張であり、TestContextManager
および関連するサポートクラスとアノテーションによって、Spring TestContext フレームワークの機能を標準の JUnit テストに提供します。 このクラスを使用するには、JUnit 4 ベースのテストクラスに @RunWith(SpringJUnit4ClassRunner.class)
または @RunWith(SpringRunner.class)
のアノテーションを付けます。
以下のリストは、現在 SpringJUnit4ClassRunner
によって直接または間接的にサポートされているすべてのアノテーションを構成しています。(追加のアノテーションは、さまざまな TestExecutionListener
または TestContextBootstrapper
実装によってサポートされる場合があることに注意してください)
@Test(expected=...)
@Test(timeout=...)
@Timed
@Repeat
@Ignore
@ProfileValueSourceConfiguration
@IfProfileValue
Spring TestContext フレームワークをこのランナー以外のランナーで使用する場合は、SpringClassRule
および SpringMethodRule
を使用します。
注意 : このクラスには、JUnit 4.12 以上が必要です。
- 導入:
- 2.5
- 作成者:
- Sam Brannen, Juergen Hoeller
- 関連事項:
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明protected ObjectSE
テストインスタンスを作成するために親実装に委譲し、TestContextManager
がテストインスタンスを準備してから返すようにします。protected TestContextManager
createTestContextManager
(ClassSE<?> clazz) 提供されたテストクラスの新しいTestContextManager
を作成します。テストがクラスレベルで@IfProfileValue
を介して無効になっている場合、無視されたテストクラスに適した説明を返します。それ以外の場合は、親実装に委譲します。protected ClassSE<? extends ThrowableSE>
getExpectedException
(FrameworkMethod frameworkMethod) 提供されたテストメソッドがスローすると予想されるexception
を取得します。protected long
getJUnitTimeout
(FrameworkMethod frameworkMethod) protected long
getSpringTimeout
(FrameworkMethod frameworkMethod) protected final TestContextManager
このランナーに関連付けられているTestContextManager
を取得します。protected boolean
isTestMethodIgnored
(FrameworkMethod frameworkMethod) protected Statement
methodBlock
(FrameworkMethod frameworkMethod) 実行チェーン全体の潜在的な繰り返しで、デフォルトの JUnit 動作を強化します。protected Statement
possiblyExpectingExceptions
(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement next) getExpectedException(FrameworkMethod)
を使用して予期される例外が取得されることを除いて、BlockJUnit4ClassRunner.possiblyExpectingExceptions(FrameworkMethod, Object, Statement)
と同じロジックを実行します。void
run
(RunNotifier notifier) 現在の実行環境でテストが有効になっているかどうかを確認します。protected void
runChild
(FrameworkMethod frameworkMethod, RunNotifier notifier) テストがisTestMethodIgnored(FrameworkMethod)
によって無視されると判断されることを除いて、BlockJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier)
と同じロジックを実行します。protected Statement
withAfterClasses
(Statement statement) 親実装によって返されたStatement
をRunAfterTestClassCallbacks
ステートメントでラップし、デフォルトの JUnit 機能を保持しながら、Spring TestContext フレームワークのサポートを追加します。protected Statement
withAfters
(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement statement) 親実装によって返されたStatement
をRunAfterTestMethodCallbacks
ステートメントでラップします。これにより、Spring TestContext フレームワークのサポートを追加しながら、デフォルトの機能を保持します。protected Statement
withAfterTestExecutionCallbacks
(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement statement) 提供されたStatement
をRunAfterTestExecutionCallbacks
ステートメントでラップし、Spring TestContext フレームワークのサポートを追加しながら、デフォルトの機能を保持します。protected Statement
withBeforeClasses
(Statement statement) 親実装によって返されたStatement
をRunBeforeTestClassCallbacks
ステートメントでラップし、デフォルトの JUnit 機能を保持しながら、Spring TestContext フレームワークのサポートを追加します。protected Statement
withBefores
(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement statement) 親実装によって返されたStatement
をRunBeforeTestMethodCallbacks
ステートメントでラップします。これにより、Spring TestContext フレームワークのサポートを追加しながら、デフォルトの機能を保持します。protected Statement
withBeforeTestExecutionCallbacks
(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement statement) 提供されたStatement
をRunBeforeTestExecutionCallbacks
ステートメントでラップし、Spring TestContext フレームワークのサポートを追加しながら、デフォルトの機能を保持します。protected Statement
withPotentialRepeat
(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement next) 提供されたStatement
をSpringRepeat
ステートメントでラップします。protected Statement
withPotentialTimeout
(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement next) BlockJUnit4ClassRunner.withPotentialTimeout(FrameworkMethod, Object, Statement)
と同じロジックを実行しますが、Spring の@Timed
アノテーションを追加サポートします。クラス org.junit.runners.BlockJUnit4ClassRunner から継承されたメソッド
collectInitializationErrors, computeTestMethods, createTest, describeChild, getChildren, getTestRules, isIgnored, methodInvoker, rules, testName, validateConstructor, validateFields, validateInstanceMethods, validateNoNonStaticInnerClass, validateOnlyOneConstructor, validateTestMethods, validateZeroArgConstructor
クラス org.junit.runners.ParentRunner から継承されたメソッド
childrenInvoker, classBlock, classRules, createTestClass, filter, getName, getRunnerAnnotations, getTestClass, order, runLeaf, setScheduler, sort, validatePublicVoidNoArgMethods, withInterruptIsolation
コンストラクターの詳細
SpringJUnit4ClassRunner
新しいSpringJUnit4ClassRunner
を作成し、TestContextManager
を初期化して、Spring Test 機能を標準の JUnit テストに提供します。- パラメーター:
clazz
- 実行するテストクラス- 例外:
InitializationError
- 関連事項:
メソッドの詳細
createTestContextManager
提供されたテストクラスの新しいTestContextManager
を作成します。サブクラスでオーバーライドできます。
- パラメーター:
clazz
- 管理するテストクラス
getTestContextManager
このランナーに関連付けられているTestContextManager
を取得します。getDescription
テストがクラスレベルで@IfProfileValue
を介して無効になっている場合、無視されたテストクラスに適した説明を返します。それ以外の場合は、親実装に委譲します。- 次で指定:
- インターフェース
Describable
のgetDescription
- オーバーライド:
- クラス
ParentRunner<FrameworkMethod>
のgetDescription
- 関連事項:
run
現在の実行環境でテストが有効になっているかどうかを確認します。これにより、一致しない
@IfProfileValue
アノテーションを持つクラスが完全に実行されなくなり、TestExecutionListeners
のprepareTestInstance()
メソッドの実行がスキップされます。withBeforeClasses
親実装によって返されたStatement
をRunBeforeTestClassCallbacks
ステートメントでラップし、デフォルトの JUnit 機能を保持しながら、Spring TestContext フレームワークのサポートを追加します。- オーバーライド:
- クラス
ParentRunner<FrameworkMethod>
のwithBeforeClasses
- 関連事項:
withAfterClasses
親実装によって返されたStatement
をRunAfterTestClassCallbacks
ステートメントでラップし、デフォルトの JUnit 機能を保持しながら、Spring TestContext フレームワークのサポートを追加します。- オーバーライド:
- クラス
ParentRunner<FrameworkMethod>
のwithAfterClasses
- 関連事項:
createTest
テストインスタンスを作成するために親実装に委譲し、TestContextManager
がテストインスタンスを準備してから返すようにします。- オーバーライド:
- クラス
BlockJUnit4ClassRunner
のcreateTest
- 例外:
ExceptionSE
- 関連事項:
runChild
テストがisTestMethodIgnored(FrameworkMethod)
によって無視されると判断されることを除いて、BlockJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier)
と同じロジックを実行します。- オーバーライド:
- クラス
BlockJUnit4ClassRunner
のrunChild
methodBlock
実行チェーン全体の潜在的な繰り返しで、デフォルトの JUnit 動作を強化します。さらに、時間指定された実行内に
@Before
および@After
メソッドの実行を含めるために、タイムアウトのサポートが実行 チェーンに移動されました。これは、メインスレッドで@Before
メソッドと@After
メソッドを実行し、別のスレッドで実際のテストメソッドを実行するという JUnit のデフォルトの動作とは異なることに注意してください。正味の効果は、@Before
および@After
メソッドがテストメソッドと同じスレッドで実行されることです。結果として、JUnit で指定されたタイムアウトは、Spring トランザクションと組み合わせて正常に機能します。ただし、JUnit 固有のタイムアウトは、Spring 固有のタイムアウトとは異なります。前者は別のスレッドで実行され、後者はメインスレッドで実行されます (通常のテストのように)。- オーバーライド:
- クラス
BlockJUnit4ClassRunner
のmethodBlock
- 関連事項:
BlockJUnit4ClassRunner.methodInvoker(FrameworkMethod, Object)
withBeforeTestExecutionCallbacks(FrameworkMethod, Object, Statement)
withAfterTestExecutionCallbacks(FrameworkMethod, Object, Statement)
possiblyExpectingExceptions(FrameworkMethod, Object, Statement)
withBefores(FrameworkMethod, Object, Statement)
withAfters(FrameworkMethod, Object, Statement)
withRulesReflectively(FrameworkMethod, Object, Statement)
withPotentialRepeat(FrameworkMethod, Object, Statement)
withPotentialTimeout(FrameworkMethod, Object, Statement)
isTestMethodIgnored
possiblyExpectingExceptions
protected Statement possiblyExpectingExceptions(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement next) getExpectedException(FrameworkMethod)
を使用して予期される例外が取得されることを除いて、BlockJUnit4ClassRunner.possiblyExpectingExceptions(FrameworkMethod, Object, Statement)
と同じロジックを実行します。- オーバーライド:
- クラス
BlockJUnit4ClassRunner
のpossiblyExpectingExceptions
getExpectedException
@Nullable protected ClassSE<? extends ThrowableSE> getExpectedException(FrameworkMethod frameworkMethod) 提供されたテストメソッドがスローすると予想されるexception
を取得します。JUnit の
@Test(expected=...)
アノテーションをサポートします。サブクラスでオーバーライドできます。
- 戻り値:
- 予期される例外、または何も指定されていない場合は
null
withPotentialTimeout
protected Statement withPotentialTimeout(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement next) BlockJUnit4ClassRunner.withPotentialTimeout(FrameworkMethod, Object, Statement)
と同じロジックを実行しますが、Spring の@Timed
アノテーションを追加サポートします。Spring の
@Timed
アノテーションと JUnit の@Test(timeout=...)
アノテーションの両方をサポートしますが、両方を同時にサポートすることはできません。- オーバーライド:
- クラス
BlockJUnit4ClassRunner
のwithPotentialTimeout
- 戻り値:
- 必要に応じて、
SpringFailOnTimeout
、FailOnTimeout
、または提供されたStatement
のいずれか - 関連事項:
getJUnitTimeout
- 戻り値:
- タイムアウト、または何も指定されなかった場合は
0
getSpringTimeout
- 戻り値:
- タイムアウト、または何も指定されなかった場合は
0
- 関連事項:
withBeforeTestExecutionCallbacks
protected Statement withBeforeTestExecutionCallbacks(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement statement) 提供されたStatement
をRunBeforeTestExecutionCallbacks
ステートメントでラップし、Spring TestContext フレームワークのサポートを追加しながら、デフォルトの機能を保持します。withAfterTestExecutionCallbacks
protected Statement withAfterTestExecutionCallbacks(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement statement) 提供されたStatement
をRunAfterTestExecutionCallbacks
ステートメントでラップし、Spring TestContext フレームワークのサポートを追加しながら、デフォルトの機能を保持します。withBefores
protected Statement withBefores(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement statement) 親実装によって返されたStatement
をRunBeforeTestMethodCallbacks
ステートメントでラップします。これにより、Spring TestContext フレームワークのサポートを追加しながら、デフォルトの機能を保持します。- オーバーライド:
- クラス
BlockJUnit4ClassRunner
のwithBefores
- 関連事項:
withAfters
protected Statement withAfters(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement statement) 親実装によって返されたStatement
をRunAfterTestMethodCallbacks
ステートメントでラップします。これにより、Spring TestContext フレームワークのサポートを追加しながら、デフォルトの機能を保持します。- オーバーライド:
- クラス
BlockJUnit4ClassRunner
のwithAfters
- 関連事項:
withPotentialRepeat
protected Statement withPotentialRepeat(FrameworkMethod frameworkMethod, ObjectSE testInstance, Statement next)