クラス AbstractApplicationContextRunner<SELF extends AbstractApplicationContextRunner<SELF,C,A>,C extends ConfigurableApplicationContext,A extends ApplicationContextAssertProvider<C>>
java.lang.ObjectSE
org.springframework.boot.test.context.runner.AbstractApplicationContextRunner<SELF,C,A>
- 型パラメーター:
SELF- このランナーの「自己」型C- コンテキスト型A- アプリケーションコンテキストアサーションプロバイダー
public abstract class AbstractApplicationContextRunner<SELF extends AbstractApplicationContextRunner<SELF,C,A>,C extends ConfigurableApplicationContext,A extends ApplicationContextAssertProvider<C>>
extends ObjectSE
ApplicationContext を実行し、AssertJ スタイルのアサーションを提供するユーティリティ設計。テストは、テストに必要な共有構成を記述するテストクラスのフィールドとして最適に使用されます。
public class MyContextTests {
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withPropertyValues("spring.foo=bar")
.withUserConfiguration(MyConfiguration.class);
} 上記の初期化により、すべてのテストで MyConfiguration を登録し、特に指定のない限り、spring.foo プロパティを bar に設定します。
上記の設定に基づいて、特定のテストは、おそらくオーバーライドされたプロパティ値を使用して、コンテキストの実行時に何が起こるかをシミュレートできます。
@Test
public someTest() {
this.contextRunner.withPropertyValues("spring.foo=biz").run((context) -> {
assertThat(context).containsSingleBean(MyBean.class);
// other assertions
});
} 上記のテストは、spring.foo プロパティを biz に変更し、コンテキストに単一の MyBean Bean が含まれることをアサートしています。run メソッドは、アサーションをコンテキストに適用できる ContextConsumer を取ります。完了すると、コンテキストは自動的に閉じられます。
アプリケーションコンテキストの起動に失敗すると、「失敗した」アプリケーションコンテキストで #run(ContextConsumer) メソッドが呼び出されます。コンテキストの呼び出しは IllegalStateExceptionSE をスローし、実行中のコンテキストを予期するアサーションは失敗します。失敗の原因でさらにチェックが必要な場合は、getFailure() アサーションを使用できます。
@Test
public someTest() {
this.context.withPropertyValues("spring.foo=fails").run((loaded) -> {
assertThat(loaded).getFailure().hasCauseInstanceOf(BadPropertyException.class);
// other assertions
});
}- 導入:
- 2.0.0
- 作成者:
- Stephane Nicoll, Andy Wilkinson, Phillip Webb
- 関連事項:
ネストされたクラスの要約
ネストされたクラス修飾子と型クラス説明protected static final classコンテキストのロード時に適用される Bean 登録。protected static final classコンストラクターの概要
コンストラクター修飾子コンストラクター説明protectedAbstractApplicationContextRunner(FunctionSE<AbstractApplicationContextRunner.RunnerConfiguration<C>, SELF> instanceFactory, SupplierSE<C> contextFactory, ClassSE<?>... additionalContextInterfaces) 新しいAbstractApplicationContextRunnerインスタンスを作成します。protectedAbstractApplicationContextRunner(SupplierSE<C> contextFactory, FunctionSE<AbstractApplicationContextRunner.RunnerConfiguration<C>, SELF> instanceFactory) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。protectedAbstractApplicationContextRunner(AbstractApplicationContextRunner.RunnerConfiguration<C> configuration, FunctionSE<AbstractApplicationContextRunner.RunnerConfiguration<C>, SELF> instanceFactory) 新しいAbstractApplicationContextRunnerインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明prepare(ContextConsumer<? super A> consumer) このローダーの現在の状態に基づいて、新しいApplicationContextを準備します。run(ContextConsumer<? super A> consumer) このローダーの現在の状態に基づいて、新しいApplicationContextを作成およびリフレッシュします。with(FunctionSE<SELF, SELF> customizer) このランナーにカスタマイズを適用します。withAllowBeanDefinitionOverriding(boolean allowBeanDefinitionOverriding) 既存の定義と同じ名前で定義を登録することにより、Bean 定義のオーバーライドを許可するかどうかを指定します。withAllowCircularReferences(boolean allowCircularReferences) Bean 間の循環参照を許可するかどうかを指定します。<T> SELF指定されたユーザー Bean をApplicationContextに登録します。<T> SELFwithBean(ClassSE<T> type, SupplierSE<T> supplier, BeanDefinitionCustomizer... customizers) 指定されたユーザー Bean をApplicationContextに登録します。<T> SELF指定されたユーザー Bean をApplicationContextに登録します。<T> SELFwithBean(StringSE name, ClassSE<T> type, SupplierSE<T> supplier, BeanDefinitionCustomizer... customizers) 指定されたユーザー Bean をApplicationContextに登録します。withClassLoader(ClassLoaderSE classLoader) ApplicationContextがリソースのロードと Bean クラスのロードに使用するClassLoaderSE をカスタマイズします。withConfiguration(Configurations configurations) 指定された構成クラスをApplicationContextに登録します。withInitializer(ApplicationContextInitializer<? super C> initializer) コンテキストの作成時に呼び出されるApplicationContextInitializerを追加します。withParent(ApplicationContext parent) ApplicationContextのparentを構成します。withPropertyValues(StringSE... pairs) 指定されたEnvironmentプロパティペアを追加します。withSystemProperties(StringSE... pairs) 指定されたSystemSE プロパティペアを追加します。withUserConfiguration(ClassSE<?>... configurationClasses) 指定されたユーザー構成クラスをApplicationContextに登録します。
コンストラクターの詳細
AbstractApplicationContextRunner
@DeprecatedSE(since="3.4.0", forRemoval=true) protected AbstractApplicationContextRunner(SupplierSE<C> contextFactory, FunctionSE<AbstractApplicationContextRunner.RunnerConfiguration<C>, SELF> instanceFactory) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。3.4.0 以降、4.0.0 で削除されAbstractApplicationContextRunner(Function, Supplier, Class...)を推奨新しいAbstractApplicationContextRunnerインスタンスを作成します。- パラメーター:
contextFactory- 実際のコンテキストの作成に使用されるファクトリinstanceFactory- ランナーの新しいインスタンスを作成するために使用されるファクトリ- 導入:
- 2.6.0
AbstractApplicationContextRunner
protected AbstractApplicationContextRunner(FunctionSE<AbstractApplicationContextRunner.RunnerConfiguration<C>, SELF> instanceFactory, SupplierSE<C> contextFactory, ClassSE<?>... additionalContextInterfaces) 新しいAbstractApplicationContextRunnerインスタンスを作成します。- パラメーター:
instanceFactory- ランナーの新しいインスタンスを作成するために使用されるファクトリcontextFactory- 実際のコンテキストの作成に使用されるファクトリadditionalContextInterfaces- アプリケーションコンテキストプロキシに追加される追加のアプリケーションコンテキストインターフェース- 導入:
- 3.4.0
AbstractApplicationContextRunner
protected AbstractApplicationContextRunner(AbstractApplicationContextRunner.RunnerConfiguration<C> configuration, FunctionSE<AbstractApplicationContextRunner.RunnerConfiguration<C>, SELF> instanceFactory) 新しいAbstractApplicationContextRunnerインスタンスを作成します。- パラメーター:
configuration- ランナーが使用する構成instanceFactory- ランナーの新しいインスタンスを作成するために使用されるファクトリ- 導入:
- 2.6.0
メソッドの詳細
withAllowBeanDefinitionOverriding
既存の定義と同じ名前で定義を登録することにより、Bean 定義のオーバーライドを許可するかどうかを指定します。- パラメーター:
allowBeanDefinitionOverriding- Bean オーバーライドが許可されている場合- 戻り値:
- 更新された Bean 定義オーバーライドポリシーを持つ新しいインスタンス
- 導入:
- 2.3.0
- 関連事項:
withAllowCircularReferences
Bean 間の循環参照を許可するかどうかを指定します。- パラメーター:
allowCircularReferences- Bean 間の循環参照が許可されている場合- 戻り値:
- 循環参照ポリシーが更新された新しいインスタンス
- 導入:
- 2.6.0
- 関連事項:
withInitializer
コンテキストの作成時に呼び出されるApplicationContextInitializerを追加します。- パラメーター:
initializer- 追加する初期化子- 戻り値:
- 更新された初期化子を持つ新しいインスタンス
withPropertyValues
指定されたEnvironmentプロパティペアを追加します。キーと値のペアは、コロン(":")または等号("=")区切り文字で指定できます。以前に指定された可能性のある一致するキーをオーバーライドします。- パラメーター:
pairs- 環境に追加する必要があるプロパティのキーと値のペア- 戻り値:
- 更新されたプロパティ値を持つ新しいインスタンス
- 関連事項:
withSystemProperties
指定されたSystemSE プロパティペアを追加します。キーと値のペアは、コロン(":")または等号("=")区切り文字で指定できます。コンテキストがrunになる前にシステムプロパティが追加され、コンテキストが閉じられると復元されます。- パラメーター:
pairs- システムに追加する必要があるプロパティのキーと値のペア- 戻り値:
- 更新されたシステムプロパティを持つ新しいインスタンス
- 関連事項:
withClassLoader
ApplicationContextがリソースのロードと Bean クラスのロードに使用するClassLoaderSE をカスタマイズします。- パラメーター:
classLoader- 使用するクラスローダー (またはデフォルトを使用する場合はnull)- 戻り値:
- 更新されたクラスローダーを持つ新しいインスタンス
- 関連事項:
withParent
ApplicationContextのparentを構成します。- パラメーター:
parent- 親- 戻り値:
- 更新された親を持つ新しいインスタンス
withBean
指定されたユーザー Bean をApplicationContextに登録します。Bean 名は、基礎となるコンテキストで構成されたBeanNameGeneratorから生成されます。このような Bean は、通常のユーザー構成の後に登録順に登録されます。
- 型パラメーター:
T- Bean の型- パラメーター:
type- Bean の型constructorArgs- Spring のコンストラクター解決アルゴリズムにフィードされるカスタム引数値。すべての引数または特定の引数のみを解決し、残りは通常のオートワイヤーによって解決されます (nullまたは空の場合があります)- 戻り値:
- 更新された Bean を持つ新しいインスタンス
withBean
指定されたユーザー Bean をApplicationContextに登録します。このような Bean は、通常のユーザー構成の後に登録順に登録されます。
- 型パラメーター:
T- Bean の型- パラメーター:
name- Bean 名または生成された名前を使用するnulltype- Bean の型constructorArgs- Spring のコンストラクター解決アルゴリズムにフィードされるカスタム引数値。すべての引数または特定の引数のみを解決し、残りは通常のオートワイヤーによって解決されます (nullまたは空の場合があります)- 戻り値:
- 更新された Bean を持つ新しいインスタンス
withBean
public <T> SELF withBean(ClassSE<T> type, SupplierSE<T> supplier, BeanDefinitionCustomizer... customizers) 指定されたユーザー Bean をApplicationContextに登録します。Bean 名は、基礎となるコンテキストで構成されたBeanNameGeneratorから生成されます。このような Bean は、通常のユーザー構成の後に登録順に登録されます。
- 型パラメーター:
T- Bean の型- パラメーター:
type- Bean の型supplier- Bean のサプライヤーcustomizers- ファクトリのBeanDefinitionをカスタマイズするための 1 つ以上のコールバック。lazy-init またはプライマリフラグの設定- 戻り値:
- 更新された Bean を持つ新しいインスタンス
withBean
public <T> SELF withBean(StringSE name, ClassSE<T> type, SupplierSE<T> supplier, BeanDefinitionCustomizer... customizers) 指定されたユーザー Bean をApplicationContextに登録します。Bean 名は、基礎となるコンテキストで構成されたBeanNameGeneratorから生成されます。このような Bean は、通常のユーザー構成の後に登録順に登録されます。
- 型パラメーター:
T- Bean の型- パラメーター:
name- Bean 名または生成された名前を使用するnulltype- Bean の型supplier- Bean のサプライヤーcustomizers- ファクトリのBeanDefinitionをカスタマイズするための 1 つ以上のコールバック。lazy-init またはプライマリフラグの設定- 戻り値:
- 更新された Bean を持つ新しいインスタンス
withUserConfiguration
指定されたユーザー構成クラスをApplicationContextに登録します。- パラメーター:
configurationClasses- 追加するユーザー構成クラス- 戻り値:
- 更新された構成を持つ新しいインスタンス
withConfiguration
指定された構成クラスをApplicationContextに登録します。- パラメーター:
configurations- 追加する構成- 戻り値:
- 更新された構成を持つ新しいインスタンス
with
このランナーにカスタマイズを適用します。- パラメーター:
customizer- 呼び出すカスタマイザ- 戻り値:
- カスタマイズが適用された新しいインスタンス
run
このローダーの現在の状態に基づいて、新しいApplicationContextを作成およびリフレッシュします。コンテキストは、指定されたconsumerによって消費され、完了時に閉じられます。- パラメーター:
consumer- 作成されたApplicationContextのコンシューマー- 戻り値:
- このインスタンス
prepare
このローダーの現在の状態に基づいて、新しいApplicationContextを準備します。コンテキストは、指定されたconsumerによって消費され、完了時に閉じられます。run(ContextConsumer)とは異なり、このメソッドは消費されたコンテキストをリフレッシュしません。- パラメーター:
consumer- 作成されたApplicationContextのコンシューマー- 戻り値:
- このインスタンス
- 導入:
- 3.0.0
AbstractApplicationContextRunner(Function, Supplier, Class...)を推奨