Browse Source

Document @DirtiesContext semantics when declared at class & method level

Closes gh-30623
pull/30651/head
Sam Brannen 2 years ago
parent
commit
d7d0292654
  1. 6
      framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-dirtiescontext.adoc
  2. 6
      spring-test/src/main/java/org/springframework/test/annotation/DirtiesContext.java

6
framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-dirtiescontext.adoc

@ -12,7 +12,11 @@ metadata. @@ -12,7 +12,11 @@ metadata.
You can use `@DirtiesContext` as both a class-level and a method-level annotation within
the same class or class hierarchy. In such scenarios, the `ApplicationContext` is marked
as dirty before or after any such annotated method as well as before or after the current
test class, depending on the configured `methodMode` and `classMode`.
test class, depending on the configured `methodMode` and `classMode`. When
`@DirtiesContext` is declared at both the class level and the method level, the
configured modes from both annotations will be honored. For example, if the class mode is
set to `BEFORE_EACH_TEST_METHOD` and the method mode is set to `AFTER_METHOD`, the
context will be marked as dirty both before and after the given test method.
The following examples explain when the context would be dirtied for various
configuration scenarios:

6
spring-test/src/main/java/org/springframework/test/annotation/DirtiesContext.java

@ -39,6 +39,12 @@ import java.lang.annotation.Target; @@ -39,6 +39,12 @@ import java.lang.annotation.Target;
* {@code ApplicationContext} will be marked as <em>dirty</em> before or
* after any such annotated method as well as before or after the current test
* class, depending on the configured {@link #methodMode} and {@link #classMode}.
* When {@code @DirtiesContext} is declared at both the class level and the
* method level, the configured test phases from both annotations will be honored.
* For example, if the class mode is set to {@link ClassMode#BEFORE_EACH_TEST_METHOD
* BEFORE_EACH_TEST_METHOD} and the method mode is set to
* {@link MethodMode#AFTER_METHOD AFTER_METHOD}, the context will be marked as
* dirty both before and after the given test method.
*
* <h3>Supported Test Phases</h3>
* <ul>

Loading…
Cancel
Save