anchor.diff:  	public void testProcessRepeatedly() {
   		// ...
   	}
  +----
  +
  +[[integration-testing-annotations-junit-jupiter]]
  +==== Spring JUnit Jupiter Testing Annotations
  +
  +The following annotations are __only__ supported when used in conjunction with the
  +`SpringExtension` and JUnit Jupiter (i.e., the programming model in JUnit 5).
  +
  +===== @SpringJUnitConfig
  +
  +`@SpringJUnitConfig` is a _composed annotation_ that combines
  +`@ExtendWith(SpringExtension.class)` from JUnit Jupiter with `@ContextConfiguration` from
  +the Spring TestContext Framework. It can be used at the class level as a drop-in
  +replacement for `@ContextConfiguration`. With regard to configuration options, the only
  +difference between `@ContextConfiguration` and `@SpringJUnitConfig` is that annotated
  +classes may be declared via the `value` attribute in `@SpringJUnitConfig`.
  +
  +[source,java,indent=0]
  +[subs="verbatim,quotes"]
  +----
  +	**@SpringJUnitConfig**(TestConfig.class)
  +	class ConfigurationClassJUnitJupiterSpringTests {
  +		// class body...
  +	}
  +----
  +
  +[source,java,indent=0]
  +[subs="verbatim,quotes"]
  +----
  +	**@SpringJUnitConfig**(**locations** = "/test-config.xml")
  +	class XmlJUnitJupiterSpringTests {
  +		// class body...
  +	}
  +----
  +
  +See <<testcontext-ctx-management>> as well as the javadocs for `@SpringJUnitConfig` and
  +`@ContextConfiguration` for further details.
  +
  +===== @SpringJUnitWebConfig
  +
  +`@SpringJUnitWebConfig` is a _composed annotation_ that combines
  +`@ExtendWith(SpringExtension.class)` from JUnit Jupiter with `@ContextConfiguration` and
  +`@WebAppConfiguration` from the Spring TestContext Framework. It can be used at the class
  +level as a drop-in replacement for `@ContextConfiguration` and `@WebAppConfiguration`.
  +With regard to configuration options, the only difference between `@ContextConfiguration`
  +and `@SpringJUnitWebConfig` is that annotated classes may be declared via the `value`
  +attribute in `@SpringJUnitWebConfig`. In addition, the `value` attribute from
  +`@WebAppConfiguration` can only be overridden via the `resourcePath` attribute in
  +`@SpringJUnitWebConfig`.
  +
  +[source,java,indent=0]
  +[subs="verbatim,quotes"]
  +----
  +	**@SpringJUnitWebConfig**(TestConfig.class)
  +	class ConfigurationClassJUnitJupiterSpringWebTests {
  +		// class body...
  +	}
  +----
  +
  +[source,java,indent=0]
  +[subs="verbatim,quotes"]
  +----
  +	**@SpringJUnitWebConfig**(**locations** = "/test-config.xml")
  +	class XmlJUnitJupiterSpringWebTests {
  +		// class body...
  +	}
  +----
  +
  +See <<testcontext-ctx-management>> as well as the javadocs for `@SpringJUnitWebConfig`,
  +`@ContextConfiguration`, and `@WebAppConfiguration` for further details.
  +
  +===== @EnabledIf
  +
  +`@EnabledIf` is used to signal that the annotated JUnit Jupiter test class or test method
  +is _enabled_ and should be executed if the supplied `expression` evaluates to `true`.
  +Specifically, if the expression evaluates to `Boolean.TRUE` or a `String` equal to
  +`"true"` (ignoring case), the test will be __enabled__. When applied at the class level,
  +all test methods within that class are automatically enabled by default as well.
  +
  +Expressions can be any of the following.
  +
  +* Spring Expression Language (SpEL) expression – for example:
  +  - `@EnabledIf("#{systemProperties['os.name'].toLowerCase().contains('mac')}")`
  +* Placeholder for a property available in the Spring `Environment` – for example:
  +  - `@EnabledIf("${smoke.tests.enabled}")`
  +* Text literal – for example:
  +  - `@EnabledIf("true")`
  +
  +Note, however, that a text literal which is _not_ the result of dynamic resolution of a
  +property placeholder is of zero practical value since `@EnabledIf("false")` is equivalent
  +to `@Disabled` and `@EnabledIf("true")` is logically meaningless.
  +
  +`@EnabledIf` may be used as a meta-annotation to create custom composed annotations. For
  +example, a custom `@EnabledOnMac` annotation can be created as follows.
  +
  +[source,java,indent=0]
  +[subs="verbatim,quotes"]
  +----
  +@Target({ ElementType.TYPE, ElementType.METHOD })
  +@Retention(RetentionPolicy.RUNTIME)
  +@EnabledIf(
  +    expression = "#{systemProperties['os.name'].toLowerCase().contains('mac')}",
  +    reason = "Enabled on Mac OS"
  +)
  +public @interface EnabledOnMac {}
  +----
  +
  +===== @DisabledIf
  +
  +`@DisabledIf` is used to signal that the annotated JUnit Jupiter test class or test
  +method is _disabled_ and should not be executed if the supplied `expression` evaluates to
  +`true`. Specifically, if the expression evaluates to `Boolean.TRUE` or a `String` equal
  +to `"true"` (ignoring case), the test will be __disabled__. When applied at the class
  +level, all test methods within that class are automatically disabled as well.
  +
  +Expressions can be any of the following.
  +
  +* Spring Expression Language (SpEL) expression – for example:
  +  - `@DisabledIf("#{systemProperties['os.name'].toLowerCase().contains('mac')}")`
  +* Placeholder for a property available in the Spring `Environment` – for example:
  +  - `@DisabledIf("${smoke.tests.disabled}")`
  +* Text literal – for example:
  +  - `@DisabledIf("true")`
  +
  +Note, however, that a text literal which is _not_ the result of dynamic resolution of a
  +property placeholder is of zero practical value since `@DisabledIf("true")` is
  +equivalent to `@Disabled` and `@DisabledIf("false")` is logically meaningless.
  +
  +`@DisabledIf` may be used as a meta-annotation to create custom composed annotations. For
  +example, a custom `@DisabledOnMac` annotation can be created as follows.
  +
  +[source,java,indent=0]
  +[subs="verbatim,quotes"]
  +----
  +@Target({ ElementType.TYPE, ElementType.METHOD })
  +@Retention(RetentionPolicy.RUNTIME)
  +@DisabledIf(
  +    expression = "#{systemProperties['os.name'].toLowerCase().contains('mac')}",
  +    reason = "Disabled on Mac OS"
  +)
  +public @interface DisabledOnMac {}
   ----
   
   
  
positive.code: * `@Sql`
  * `@SqlConfig`
  * `@SqlGroup`
  * `@Repeat`
  * `@Timed`
  * `@IfProfileValue`
  * `@ProfileValueSourceConfiguration`
  
  For example, if we discover that we are repeating the following configuration
  across our JUnit 4 based test suite...
  
  [source,java,indent=0]
  [subs="verbatim,quotes"]
  
negative.code: 	public class UserRepositoryTests { }
  ----
  
  We can reduce the above duplication by introducing a custom _composed annotation_ that
  centralizes the common test configuration for Spring like this:
  
  [source,java,indent=0]
  [subs="verbatim,quotes"]
  