Annotation Interface DirtiesContext
ApplicationContext
associated with a test is dirty and should therefore be closed
and removed from the context cache.
Use this annotation if a test has modified the context — 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.
@DirtiesContext may be used as a class-level and method-level
annotation within the same class or class hierarchy. In such scenarios, the
ApplicationContext will be 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().
This annotation may be used as a meta-annotation to create custom composed annotations.
this annotation will be inherited from an
enclosing test class by default. See
@NestedTestConfiguration
for details.
Supported Test Phases
- Before current test class: when declared at the class
level with class mode set to
BEFORE_CLASS - Before each test method in current test class: when
declared at the class level with class mode set to
BEFORE_EACH_TEST_METHOD - Before current test method: when declared at the
method level with method mode set to
BEFORE_METHOD - After current test method: when declared at the
method level with method mode set to
AFTER_METHOD - After each test method in current test class: when
declared at the class level with class mode set to
AFTER_EACH_TEST_METHOD - After current test class: when declared at the
class level with class mode set to
AFTER_CLASS
BEFORE_* modes are supported by the
DirtiesContextBeforeModesTestExecutionListener;
AFTER_* modes are supported by the
DirtiesContextTestExecutionListener.
- 从以下版本开始:
- 4.0
- 作者:
- Sam Brannen, Rod Johnson
- 另请参阅:
-
嵌套类概要
嵌套类修饰符和类型类说明static enumDefines modes which determine how@DirtiesContextis interpreted when used to annotate a test class.static enumDefines modes which determine how the context cache is cleared when@DirtiesContextis used in a test whose context is configured as part of a hierarchy via@ContextHierarchy.static enumDefines modes which determine how@DirtiesContextis interpreted when used to annotate a test method. -
可选元素概要
可选元素修饰符和类型可选元素说明The mode to use when a test class is annotated with@DirtiesContext.The context cache clearing mode to use when a context is configured as part of a hierarchy via@ContextHierarchy.The mode to use when a test method is annotated with@DirtiesContext.
-
元素详细资料
-
methodMode
DirtiesContext.MethodMode methodModeThe mode to use when a test method is annotated with@DirtiesContext.Defaults to
AFTER_METHOD.Setting the method mode on an annotated test class has no meaning. For class-level control, use
classMode()instead.- 默认值:
- AFTER_METHOD
-
classMode
DirtiesContext.ClassMode classModeThe mode to use when a test class is annotated with@DirtiesContext.Defaults to
AFTER_CLASS.Setting the class mode on an annotated test method has no meaning. For method-level control, use
methodMode()instead.- 默认值:
- AFTER_CLASS
-
hierarchyMode
DirtiesContext.HierarchyMode hierarchyModeThe context cache clearing mode to use when a context is configured as part of a hierarchy via@ContextHierarchy.Defaults to
EXHAUSTIVE.- 默认值:
- EXHAUSTIVE
-