public interface TestContextBootstrapper
TestContextBootstrapper
は、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 を取得します。 |
java.util.List<TestExecutionListener> | getTestExecutionListeners() このブートストラップに関連付けられた BootstrapContext のテストクラス用に新しくインスタンス化された TestExecutionListeners のリストを取得します。 |
void | setBootstrapContext(BootstrapContext bootstrapContext) このブートストラップで使用する BootstrapContext を設定します。 |
void setBootstrapContext(BootstrapContext bootstrapContext)
BootstrapContext
を設定します。BootstrapContext getBootstrapContext()
BootstrapContext
を取得します。TestContext buildTestContext()
BootstrapContext
の TestContext
をビルドします。TestContext
、決して null
buildMergedContextConfiguration()
MergedContextConfiguration buildMergedContextConfiguration()
BootstrapContext
内のテストクラスのマージされたコンテキスト構成を構築します。マージされた構成を構築する場合、実装では次のことを考慮する必要があります。
@ContextHierarchy
および @ContextConfiguration
を介して宣言されたコンテキスト階層 @ActiveProfiles
を介して宣言されたアクティブな Bean 定義プロファイル ContextConfiguration.initializers()
を介して宣言されたコンテキスト初期化子 @TestPropertySource
を介して宣言されたプロパティソースのテスト 必要なセマンティクスの詳細については、前述のアノテーションについて Javadoc を参照してください。
buildTestContext()
の実装は、通常、TestContext
を構築するときにこのメソッドに委譲する必要があることに注意してください。
特定のテストクラスに使用する ContextLoader
を決定するときは、次のアルゴリズムを使用する必要があります。
ContextLoader
クラスが ContextConfiguration.loader()
を介して明示的に宣言されている場合は、それを使用してください。ContextLoader
クラスを自由に決定できます。null
buildTestContext()
java.util.List<TestExecutionListener> getTestExecutionListeners()
BootstrapContext
のテストクラス用に新しくインスタンス化された TestExecutionListeners
のリストを取得します。@TestExecutionListeners
が BootstrapContext
のテストクラスに存在しない場合、デフォルトのリスナーが返されます。さらに、デフォルトのリスナーは AnnotationAwareOrderComparator
を使用してソートする必要があります。
具体的な実装は、デフォルトのリスナーのセットを構成するものを自由に決定できます。ただし、デフォルトでは、Spring TestContext フレームワークは SpringFactoriesLoader
メカニズムを使用して、クラスパス上のすべての META-INF/spring.factories
ファイルで構成されているすべての TestExecutionListener
クラス名を検索します。
@TestExecutionListeners
の inheritListeners
フラグを考慮する必要があります。具体的には、inheritListeners
フラグが true
に設定されている場合、特定のテストクラスに対して宣言されたリスナーは、スーパークラスで宣言されたリスナーのリストの最後に追加する必要があります。
TestExecutionListener
インスタンスのリスト