アノテーションインターフェース NestedTestConfiguration
@NestedTestConfiguration
は、テストクラスに適用して、Spring Test 構成アノテーションが囲むクラス階層内 (つまり、内部テストクラス) でどのように処理されるかを構成できるアノテーションです。@NestedTestConfiguration
がテストクラス、そのスーパー型階層、その包含クラス階層に存在しないかメタ存在 しない場合、デフォルトの包含構成継承モードが使用されます。ネストされたインターフェースの包含クラスでの @NestedTestConfiguration
宣言は、インターフェースを実装するクラスでアノテーションを検索するときに無視されます。デフォルトモードを変更する方法の詳細については、ENCLOSING_CONFIGURATION_PROPERTY_NAME
を参照してください。
INHERIT
モードが使用されている場合、包含テストクラスからの構成は、テストクラス継承階層内のセマンティクスと同様に、内部テストクラスによって継承されます。OVERRIDE
モードが使用されている場合、内部テストクラスは独自の Spring Test 構成アノテーションを宣言する必要があります。モードを明示的に構成する場合は、内部テストクラスまたはそれを囲むクラスの 1 つに @NestedTestConfiguration(...)
アノテーションを付けます。@NestedTestConfiguration(...)
宣言は、スーパークラス階層内およびそれを囲むクラス階層内で継承されることに注意してください。モードを切り替えたい場合を除いて、アノテーションを再宣言する必要はありません。
このアノテーションは、カスタム構成アノテーションを作成するためのメタアノテーションとして使用することができます。
このアノテーションの使用は、通常、JUnit Jupiter の @Nested
テストクラスと組み合わせて使用する場合にのみ意味があります。ただし、ネストされたテストクラスをサポートする他のテストフレームワークでも、このアノテーションを使用できる場合があります。
Spring、TestContext、フレームワークと統合され、包含クラス階層内でのアノテーション継承をサポートする必要があるコンポーネントを開発している場合は、@NestedTestConfiguration
セマンティクスを尊重するために、TestContextAnnotationUtils
で提供されるアノテーション検索ユーティリティを使用する必要があります。
サポートされているアノテーション
Spring TestContext フレームワークは、次のアノテーションの @NestedTestConfiguration
セマンティクスを尊重します。
ネストされたクラスのサマリー
修飾子と型クラス説明static enum
クラスを囲むことによるテスト構成が内部テストクラスに対してどのように処理されるかを指示するモードの列挙。必須定数のサマリー
修飾子と型必須要素説明フィールドサマリー
修飾子と型フィールド説明static final StringSE
デフォルトの包含構成継承モードを変更するために使用される JVM システムプロパティ: "spring.test.enclosing.configuration"。
フィールドの詳細
ENCLOSING_CONFIGURATION_PROPERTY_NAME
デフォルトの包含構成継承モードを変更するために使用される JVM システムプロパティ: "spring.test.enclosing.configuration"。サポートされている値には、大文字と小文字を区別せずに、
NestedTestConfiguration.EnclosingConfiguration
で定義されている列挙型定数が含まれます。例: コマンドラインから次の JVM システムプロパティを指定することにより、デフォルトをNestedTestConfiguration.EnclosingConfiguration.OVERRIDE
に変更できます。-Dspring.test.enclosing.configuration=override
プロパティが
OVERRIDE
に設定されていない場合、内部テストクラスのテスト構成は、デフォルトでNestedTestConfiguration.EnclosingConfiguration.INHERIT
セマンティクスに従って継承されます。あるいは、
SpringProperties
メカニズムを介して構成することもできます。
要素の詳細