クラス AbstractTestContextBootstrapper
- 実装されているすべてのインターフェース:
TestContextBootstrapper
- 既知の直属サブクラス
DefaultTestContextBootstrapper
TestContextBootstrapper インターフェースの抽象的な実装。具象サブクラスは通常、次のメソッドの実装を提供するだけで済みます。
getDefaultContextLoaderClass(java.lang.Class<?>)processMergedContextConfiguration(org.springframework.test.context.MergedContextConfiguration)
カスタム ContextCache サポートをプラグインするには、getCacheAwareContextLoaderDelegate() をオーバーライドします。
- 導入:
- 4.1
- 作成者:
- Sam Brannen, Juergen Hoeller, Phillip Webb
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明このブートストラップに関連付けられたBootstrapContext内のテストクラスのマージされたコンテキスト構成を構築します。このブートストラッパーに関連付けられたBootstrapContextのテストクラスSEを使用し、buildMergedContextConfiguration()およびgetCacheAwareContextLoaderDelegate()に委譲することにより、新しいDefaultTestContextをビルドします。このブートストラップに関連付けられているBootstrapContextを取得します。protected CacheAwareContextLoaderDelegateContextCacheとの透過的な相互作用に使用するCacheAwareContextLoaderDelegateを取得します。protected ListSE<ContextCustomizerFactory>このブートストラップのContextCustomizerFactoryインスタンスを取得します。protected abstract ClassSE<? extends ContextLoader>getDefaultContextLoaderClass(ClassSE<?> testClass) 提供されたテストクラスに使用するデフォルトのContextLoaderクラスを決定SEします。protected ListSE<TestExecutionListener>このブートストラッパーのデフォルトTestExecutionListenersを取得します。final ListSE<TestExecutionListener>このブートストラップに関連付けられたBootstrapContextのテストクラス用に新しくインスタンス化されたTestExecutionListenersのリストを取得します。protected MergedContextConfigurationprocessMergedContextConfiguration(MergedContextConfiguration mergedConfig) 提供され、新しくインスタンス化されたMergedContextConfigurationインスタンスを処理します。protected ContextLoaderresolveContextLoader(ClassSE<?> testClass, ListSE<ContextConfigurationAttributes> configAttributesList) ContextConfigurationAttributesの提供されたリストに使用するContextLoaderSE クラスを解決してから、そのContextLoaderをインスタンス化して返します。protected ClassSE<? extends ContextLoader>resolveExplicitContextLoaderClass(ListSE<ContextConfigurationAttributes> configAttributesList) voidsetBootstrapContext(BootstrapContext bootstrapContext) このブートストラップで使用するBootstrapContextを設定します。
コンストラクターの詳細
AbstractTestContextBootstrapper
public AbstractTestContextBootstrapper()
メソッドの詳細
setBootstrapContext
インターフェースからコピーされた説明:TestContextBootstrapperこのブートストラップで使用するBootstrapContextを設定します。- 次で指定:
- インターフェース
TestContextBootstrapperのsetBootstrapContext
getBootstrapContext
インターフェースからコピーされた説明:TestContextBootstrapperこのブートストラップに関連付けられているBootstrapContextを取得します。- 次で指定:
- インターフェース
TestContextBootstrapperのgetBootstrapContext
buildTestContext
このブートストラッパーに関連付けられたBootstrapContextのテストクラスSEを使用し、buildMergedContextConfiguration()およびgetCacheAwareContextLoaderDelegate()に委譲することにより、新しいDefaultTestContextをビルドします。具象サブクラスは、このメソッドをオーバーライドしてカスタム
TestContext実装を返すことを選択できます。- 次で指定:
- インターフェース
TestContextBootstrapperのbuildTestContext - 戻り値:
- 新しい
TestContext、決してnull - 導入:
- 4.2
- 関連事項:
getTestExecutionListeners
インターフェースからコピーされた説明:TestContextBootstrapperこのブートストラップに関連付けられたBootstrapContextのテストクラス用に新しくインスタンス化されたTestExecutionListenersのリストを取得します。@TestExecutionListenersがBootstrapContextのテストクラスに存在しない場合、デフォルトのリスナーが返されます。さらに、デフォルトのリスナーはAnnotationAwareOrderComparatorを使用してソートする必要があります。具体的な実装は、デフォルトのリスナーのセットを構成するものを自由に決定できます。ただし、デフォルトでは、Spring TestContext フレームワークは
SpringFactoriesLoaderメカニズムを使用して、クラスパス上のすべてのMETA-INF/spring.factoriesファイルで構成されているすべてのTestExecutionListenerクラス名を検索します。@TestExecutionListenersのinheritListenersフラグを考慮する必要があります。具体的には、inheritListenersフラグがtrueに設定されている場合、特定のテストクラスに対して宣言されたリスナーは、スーパークラスまたはそれを囲むクラスで宣言されたリスナーのリストの最後に追加する必要があります。- 次で指定:
- インターフェース
TestContextBootstrapperのgetTestExecutionListeners - 戻り値:
TestExecutionListenerインスタンスのリスト
getDefaultTestExecutionListeners
このブートストラッパーのデフォルトTestExecutionListenersを取得します。デフォルトの実装は
TestContextSpringFactoriesUtils.loadFactoryImplementations(Class)に委譲します。このメソッドは
getTestExecutionListeners()によって呼び出されます。- 戻り値:
- デフォルトの
TestExecutionListenerインスタンスの変更不可能なリスト - 導入:
- 6.0
buildMergedContextConfiguration
インターフェースからコピーされた説明:TestContextBootstrapperこのブートストラップに関連付けられたBootstrapContext内のテストクラスのマージされたコンテキスト構成を構築します。マージされた構成を構築する場合、実装では次のことを考慮する必要があります。
@ContextHierarchyおよび@ContextConfigurationを介して宣言されたコンテキスト階層@ActiveProfilesを介して宣言されたアクティブな Bean 定義プロファイルContextConfiguration.initializers()を介して宣言されたコンテキスト初期化子@TestPropertySourceを介して宣言されたプロパティソースのテスト
必要なセマンティクスの詳細については、前述のアノテーションについて Javadoc を参照してください。
TestContextBootstrapper.buildTestContext()の実装は、通常、TestContextを構築するときにこのメソッドに委譲する必要があることに注意してください。特定のテストクラスに使用する
ContextLoaderを決定するときは、次のアルゴリズムを使用する必要があります。ContextLoaderクラスがContextConfiguration.loader()を介して明示的に宣言されている場合は、それを使用してください。- それ以外の場合、具体的な実装は、デフォルトとして使用する
ContextLoaderクラスを自由に決定できます。
- 次で指定:
- インターフェース
TestContextBootstrapperのbuildMergedContextConfiguration - 戻り値:
- マージされたコンテキスト構成、決して
null - 関連事項:
getContextCustomizerFactories
このブートストラップのContextCustomizerFactoryインスタンスを取得します。デフォルトの実装は
TestContextSpringFactoriesUtils.loadFactoryImplementations(Class)に委譲します。- 導入:
- 4.3
resolveContextLoader
protected ContextLoader resolveContextLoader(ClassSE<?> testClass, ListSE<ContextConfigurationAttributes> configAttributesList) ContextConfigurationAttributesの提供されたリストに使用するContextLoaderSE クラスを解決してから、そのContextLoaderをインスタンス化して返します。ユーザーが使用するローダーを明示的に宣言していない場合は、
getDefaultContextLoaderClass(java.lang.Class<?>)から返された値がデフォルトのコンテキストローダークラスとして使用されます。クラス解決プロセスの詳細については、resolveExplicitContextLoaderClass(java.util.List<org.springframework.test.context.ContextConfigurationAttributes>)およびgetDefaultContextLoaderClass(java.lang.Class<?>)を参照してください。- パラメーター:
testClass-ContextLoaderを解決する必要があるテストクラス。nullであってはならないconfigAttributesList- 処理する構成属性のリスト。nullであってはなりません。ボトムアップで並べ替える必要があります (つまり、クラス階層をトラバースしてクラス階層を囲んでいるかのように)- 戻り値:
- 提供された
testClassの解決されたContextLoader(非null) - 例外:
IllegalStateExceptionSE-getDefaultContextLoaderClass(Class)がnullを返す場合
resolveExplicitContextLoaderClass
@Nullable protected ClassSE<? extends ContextLoader> resolveExplicitContextLoaderClass(ListSE<ContextConfigurationAttributes> configAttributesList) ContextConfigurationAttributesの提供されたリストに使用するContextLoaderクラスを解決SEします。コンテキスト構成属性階層の最初のレベルから始めます。
ContextConfigurationAttributesのcontextLoaderClassプロパティが明示的なクラスで構成されている場合、そのクラスが返されます。- 明示的な
ContextLoaderクラスが階層の現在のレベルで指定されていない場合は、階層の次のレベルに移動して、ステップ #1 に戻ります。
- パラメーター:
configAttributesList- 処理する構成属性のリスト。nullであってはなりません。ボトムアップで並べ替える必要があります (つまり、クラス階層をトラバースしてクラス階層を囲んでいるかのように)- 戻り値:
- 指定された構成属性に使用する
ContextLoaderクラス、または明示的なローダーが見つからない場合はnull - 例外:
IllegalArgumentExceptionSE- 指定された構成属性がnullまたは空の場合
getCacheAwareContextLoaderDelegate
ContextCacheとの透過的な相互作用に使用するCacheAwareContextLoaderDelegateを取得します。デフォルトの実装は
getBootstrapContext().getCacheAwareContextLoaderDelegate()に委譲し、デフォルトの実装はサービス読み込みメカニズムを介してApplicationContextFailureProcessorを読み込みます。具象サブクラスは、このメソッドをオーバーライドして、カスタム
ContextCacheサポートを備えたカスタムCacheAwareContextLoaderDelegate実装を返すことを選択できます。- 戻り値:
- コンテキストローダーデリゲート (非
null) - 関連事項:
getDefaultContextLoaderClass
protected abstract ClassSE<? extends ContextLoader> getDefaultContextLoaderClass(ClassSE<?> testClass) 提供されたテストクラスに使用するデフォルトのContextLoaderクラスを決定SEします。このメソッドによって返されるクラスは、
ContextLoaderクラスがContextConfiguration.loader()を介して明示的に宣言されていない場合にのみ使用されます。- パラメーター:
testClass- デフォルトのContextLoaderクラスを取得するテストクラス- 戻り値:
- 指定されたテストクラスのデフォルト
ContextLoaderクラス (非null)
processMergedContextConfiguration
protected MergedContextConfiguration processMergedContextConfiguration(MergedContextConfiguration mergedConfig) 提供され、新しくインスタンス化されたMergedContextConfigurationインスタンスを処理します。返される
MergedContextConfigurationインスタンスは、元のラッパーまたはその代わりになる可能性があります。デフォルトの実装は、指定されたインスタンスを変更せずに返すだけです。
具象サブクラスは、提供されたインスタンスのプロパティに基づいて、
MergedContextConfigurationの特殊なサブクラスを返すことを選択できます。- パラメーター:
mergedConfig- 処理するMergedContextConfiguration。null- 戻り値:
- 完全に初期化された
MergedContextConfiguration;null