インターフェース 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のリストを取得します。voidsetBootstrapContext(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インスタンスのリスト