Annotation Interface NestedTestConfiguration

@Target(TYPE) @Retention(RUNTIME) @Documented @Inherited public @interface NestedTestConfiguration
@NestedTestConfiguration is a type-level annotation that is used to configure how Spring test configuration annotations are processed within enclosing class hierarchies (i.e., for inner test classes).

If @NestedTestConfiguration is not present or meta-present on a test class, in its supertype hierarchy, or in its enclosing class hierarchy, the default enclosing configuration inheritance mode will be used. A @NestedTestConfiguration declaration on an enclosing class for a nested interface will be ignored when searching for the annotation on classes that implement the interface. See ENCLOSING_CONFIGURATION_PROPERTY_NAME for details on how to change the default mode.

When the INHERIT mode is in use, configuration from an enclosing test class will be inherited by inner test classes, analogous to the semantics within a test class inheritance hierarchy. When the OVERRIDE mode is in use, inner test classes will have to declare their own Spring test configuration annotations. If you wish to explicitly configure the mode, annotate either the inner test class or one of its enclosing classes with @NestedTestConfiguration(...). Note that a @NestedTestConfiguration(...) declaration is inherited within the superclass hierarchy as well as within the enclosing class hierarchy. Thus, there is no need to redeclare the annotation unless you wish to switch the mode.

This annotation may be used as a meta-annotation to create custom composed annotations.

As of Spring Framework 5.3, the use of this annotation typically only makes sense in conjunction with @Nested test classes in JUnit Jupiter; however, there may be other testing frameworks with support for nested test classes that could also make use of this annotation.

Supported Annotations

The Spring TestContext Framework honors @NestedTestConfiguration semantics for the following annotations.

Sam Brannen
See Also: