インターフェース TestContextBootstrapper
- すべての既知の実装クラス:
AbstractTestContextBootstrapper
、DefaultTestContextBootstrapper
、WebTestContextBootstrapper
TestContextBootstrapper
は、Spring TestContext フレームワークをブートストラップするための SPI を定義します。TestContextManager
は TestContextBootstrapper
を使用して、現在のテスト用の TestExecutionListeners を取得し、それが管理する TestContext を構築します。
構成
カスタムブートストラップ戦略は、直接またはメタアノテーションとして、@BootstrapWith
を介してテストクラス(またはテストクラス階層)に対して構成できます。
ブートストラップが @BootstrapWith
を介して明示的に構成されていない場合、@WebAppConfiguration
の存在に応じて、DefaultTestContextBootstrapper
または WebTestContextBootstrapper
のいずれかが使用されます。
実装上の注意
具体的な実装では、public
の引数なしのコンストラクターを提供する必要があります。
警告 : この SPI は、新しい要件に対応するために将来変更される可能性があります。実装者は、強くこのインターフェースを直接実装するのではなく AbstractTestContextBootstrapper
または代わりに、その具象サブクラスの 1 を拡張すること は推奨されません。
- 導入:
- 4.1
- 作成者:
- Sam Brannen
- 関連事項:
方法の概要
修飾子と型メソッド説明このブートストラップに関連付けられたBootstrapContext
内のテストクラスのマージされたコンテキスト構成を構築します。このブートストラップに関連付けられているBootstrapContext
のTestContext
をビルドします。このブートストラップに関連付けられているBootstrapContext
を取得します。このブートストラップに関連付けられたBootstrapContext
のテストクラス用に新しくインスタンス化されたTestExecutionListeners
のリストを取得します。void
setBootstrapContext
(BootstrapContext bootstrapContext) このブートストラップで使用するBootstrapContext
を設定します。
メソッドの詳細
setBootstrapContext
このブートストラップで使用するBootstrapContext
を設定します。getBootstrapContext
BootstrapContext getBootstrapContext()このブートストラップに関連付けられているBootstrapContext
を取得します。buildTestContext
TestContext buildTestContext()このブートストラップに関連付けられているBootstrapContext
のTestContext
をビルドします。- 戻り値:
- 新しい
TestContext
、決してnull
- 導入:
- 4.2
- 関連事項:
buildMergedContextConfiguration
MergedContextConfiguration buildMergedContextConfiguration()このブートストラップに関連付けられたBootstrapContext
内のテストクラスのマージされたコンテキスト構成を構築します。マージされた構成を構築する場合、実装では次のことを考慮する必要があります。
@ContextHierarchy
および@ContextConfiguration
を介して宣言されたコンテキスト階層@ActiveProfiles
を介して宣言されたアクティブな Bean 定義プロファイルContextConfiguration.initializers()
を介して宣言されたコンテキスト初期化子@TestPropertySource
を介して宣言されたプロパティソースのテスト
必要なセマンティクスの詳細については、前述のアノテーションについて Javadoc を参照してください。
buildTestContext()
の実装は、通常、TestContext
を構築するときにこのメソッドに委譲する必要があることに注意してください。特定のテストクラスに使用する
ContextLoader
を決定するときは、次のアルゴリズムを使用する必要があります。ContextLoader
クラスがContextConfiguration.loader()
を介して明示的に宣言されている場合は、それを使用してください。- それ以外の場合、具体的な実装は、デフォルトとして使用する
ContextLoader
クラスを自由に決定できます。
- 戻り値:
- マージされたコンテキスト構成、決して
null
- 関連事項:
getTestExecutionListeners
ListSE<TestExecutionListener> getTestExecutionListeners()このブートストラップに関連付けられたBootstrapContext
のテストクラス用に新しくインスタンス化されたTestExecutionListeners
のリストを取得します。@TestExecutionListeners
がBootstrapContext
のテストクラスに存在しない場合、デフォルトのリスナーが返されます。さらに、デフォルトのリスナーはAnnotationAwareOrderComparator
を使用してソートする必要があります。具体的な実装は、デフォルトのリスナーのセットを構成するものを自由に決定できます。ただし、デフォルトでは、Spring TestContext フレームワークは
SpringFactoriesLoader
メカニズムを使用して、クラスパス上のすべてのMETA-INF/spring.factories
ファイルで構成されているすべてのTestExecutionListener
クラス名を検索します。@TestExecutionListeners
のinheritListeners
フラグを考慮する必要があります。具体的には、inheritListeners
フラグがtrue
に設定されている場合、特定のテストクラスに対して宣言されたリスナーは、スーパークラスまたはそれを囲むクラスで宣言されたリスナーのリストの最後に追加する必要があります。- 戻り値:
TestExecutionListener
インスタンスのリスト