Browse Source

Merge branch '6.0.x'

pull/30636/head
Sam Brannen 3 years ago
parent
commit
54904de77d
  1. 6
      framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-dirtiescontext.adoc
  2. 1
      spring-test/spring-test.gradle
  3. 35
      spring-test/src/main/java/org/springframework/test/annotation/DirtiesContext.java
  4. 2
      spring-test/src/main/java/org/springframework/test/context/support/AbstractDirtiesContextTestExecutionListener.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:

1
spring-test/spring-test.gradle

@ -36,6 +36,7 @@ dependencies { @@ -36,6 +36,7 @@ dependencies {
exclude group: "commons-logging", module: "commons-logging"
}
optional("org.seleniumhq.selenium:htmlunit-driver") {
exclude group: "commons-logging", module: "commons-logging"
exclude group: "net.bytebuddy", module: "byte-buddy"
}
optional("org.seleniumhq.selenium:selenium-java") {

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

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2020 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -31,22 +31,20 @@ import java.lang.annotation.Target; @@ -31,22 +31,20 @@ import java.lang.annotation.Target;
*
* <p>Use this annotation if a test has modified the context &mdash; for
* example, by modifying the state of a singleton bean, modifying the state
* of an embedded database, etc. Subsequent tests that request the same
* context will be supplied a new context.
* of an embedded database, etc. Subsequent tests that request the same context
* will be supplied a new context.
*
* <p>{@code @DirtiesContext} may be used as a class-level and method-level
* annotation within the same class or class hierarchy. In such scenarios, the
* {@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}.
*
* <p>This annotation may be used as a <em>meta-annotation</em> to create custom
* <em>composed annotations</em>.
*
* <p>As of Spring Framework 5.3, this annotation will be inherited from an
* enclosing test class by default. See
* {@link org.springframework.test.context.NestedTestConfiguration @NestedTestConfiguration}
* for details.
* 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>
@ -70,9 +68,18 @@ import java.lang.annotation.Target; @@ -70,9 +68,18 @@ import java.lang.annotation.Target;
* </ul>
*
* <p>{@code BEFORE_*} modes are supported by the
* {@link org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener DirtiesContextBeforeModesTestExecutionListener};
* {@code AFTER_*} modes are supported by the
* {@link org.springframework.test.context.support.DirtiesContextTestExecutionListener DirtiesContextTestExecutionListener}.
* {@link org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener
* DirtiesContextBeforeModesTestExecutionListener}; {@code AFTER_*} modes are supported by the
* {@link org.springframework.test.context.support.DirtiesContextTestExecutionListener
* DirtiesContextTestExecutionListener}.
*
* <p>This annotation may be used as a <em>meta-annotation</em> to create custom
* <em>composed annotations</em>.
*
* <p>As of Spring Framework 5.3, this annotation will be inherited from an
* enclosing test class by default. See
* {@link org.springframework.test.context.NestedTestConfiguration @NestedTestConfiguration}
* for details.
*
* @author Sam Brannen
* @author Rod Johnson

2
spring-test/src/main/java/org/springframework/test/context/support/AbstractDirtiesContextTestExecutionListener.java

@ -48,7 +48,7 @@ import org.springframework.util.Assert; @@ -48,7 +48,7 @@ import org.springframework.util.Assert;
*/
public abstract class AbstractDirtiesContextTestExecutionListener extends AbstractTestExecutionListener {
private static final Log logger = LogFactory.getLog(AbstractDirtiesContextTestExecutionListener.class);
private final Log logger = LogFactory.getLog(getClass());
@Override

Loading…
Cancel
Save