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