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