anchor.diff:  {api-spring-framework}/test/context/ContextConfiguration.html[`@ContextConfiguration`], and
   {api-spring-framework}/test/context/web/WebAppConfiguration.html[`@WebAppConfiguration`]
   for further details.
  +
  +[[integration-testing-annotations-testconstructor]]
  +===== `@TestConstructor`
  +
  +`@TestConstructor` is a type-level annotation that is used to configure whether a test
  +class constructor should be automatically autowired from components in the test's
  +`ApplicationContext`.
  +
  +If `@TestConstructor` is not present or meta-present on a test class, the default _test
  +constructor autowire_ mode will be used. See the tip below for details on how to change
  +the default mode. Note, however, that a local declaration of `@Autowired` on a
  +constructor takes precedence over both `@TestConstructor` and the default mode.
  +
  +.Configuring the default test constructor autowire mode
  +[TIP]
  +=====
  +The default _test constructor autowire_ mode can be configured by setting the
  +`spring.test.constructor.autowire` JVM system property to `true`. Alternatively, the
  +default mode may be configured via the `SpringProperties` mechanism.
  +
  +If the `spring.test.constructor.autowire` property is not set, test class constructors
  +will not be automatically autowired.
  +=====
  +
  +NOTE: As of Spring Framework 5.2, `@TestConstructor` is only supported in conjunction
  +with the `SpringExtension` for use with JUnit Jupiter. Note that the `SpringExtension` is
  +often automatically registered for you – for example, when using annotations such as
  +`@SpringJUnitConfig` and `@SpringJUnitWebConfig` or various test-related annotations from
  +Spring Boot Test.
   
   [[integration-testing-annotations-junit-jupiter-enabledif]]
   ===== `@EnabledIf`
  
positive.code: 
  * <<integration-testing-annotations-junit-jupiter-springjunitconfig>>
  * <<integration-testing-annotations-junit-jupiter-springjunitwebconfig>>
  * <<integration-testing-annotations-junit-jupiter-enabledif>>
  * <<integration-testing-annotations-junit-jupiter-disabledif>>
  
  
negative.code: [[testcontext-junit-jupiter-di-constructor]]
  ====== Constructor Injection
  
  If a specific parameter in a constructor for a JUnit Jupiter test class is of type
  `ApplicationContext` (or a sub-type thereof) or is annotated or meta-annotated with
  `@Autowired`, `@Qualifier`, or `@Value`, Spring injects the value for that specific
  parameter with the corresponding bean or value from the test's `ApplicationContext`.
  
  Spring can also be configured to autowire all arguments for a test class constructor if
  the constructor is considered to be _autowirable_. A constructor is considered to be
  autowirable if one of the following conditions is met (in order of precedence).
  
  * The constructor is annotated with `@Autowired`.
  * `@TestConstructor` is present or meta-present on the test class with the `autowire`
    attribute set to `true`.
  * The default _test constructor autowire_ mode is set to `true`.
  
  See <<integration-testing-annotations-testconstructor>> for details on the use of
  `@TestConstructor` and how to set the global _test constructor autowire_ mode.
  
  WARNING: If the constructor for a test class is considered to be _autowirable_, Spring
  assumes the responsibility for resolving arguments for all parameters in the constructor.
  Consequently, no other `ParameterResolver` registered with JUnit Jupiter can resolve
  parameters for such a constructor.
  
  