クラス 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 CacheAwareContextLoaderDelegate
ContextCache
との透過的な相互作用に使用する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 MergedContextConfiguration
processMergedContextConfiguration
(MergedContextConfiguration mergedConfig) 提供され、新しくインスタンス化されたMergedContextConfiguration
インスタンスを処理します。protected ContextLoader
resolveContextLoader
(ClassSE<?> testClass, ListSE<ContextConfigurationAttributes> configAttributesList) ContextConfigurationAttributes
の提供されたリストに使用するContextLoader
SE クラスを解決してから、そのContextLoader
をインスタンス化して返します。protected ClassSE<? extends ContextLoader>
resolveExplicitContextLoaderClass
(ListSE<ContextConfigurationAttributes> configAttributesList) void
setBootstrapContext
(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
の提供されたリストに使用するContextLoader
SE クラスを解決してから、その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