Class DefaultTestContext
java.lang.Object
org.springframework.test.context.support.DefaultTestContext
- All Implemented Interfaces:
Serializable
,org.springframework.core.AttributeAccessor
,TestContext
Default implementation of the
TestContext
interface.- Since:
- 4.0
- Author:
- Sam Brannen, Juergen Hoeller, Rob Harrop
- See Also:
-
Constructor Summary
ConstructorDescriptionDefaultTestContext
(Class<?> testClass, MergedContextConfiguration mergedContextConfiguration, CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate) Construct a newDefaultTestContext
from the supplied arguments.DefaultTestContext
(DefaultTestContext testContext) Copy constructor for creating a newDefaultTestContext
based on the attributes and immutable state of the supplied context. -
Method Summary
Modifier and TypeMethodDescriptionString[]
<T> T
computeAttribute
(String name, Function<String, T> computeFunction) org.springframework.context.ApplicationContext
Get the application context for this test context.getAttribute
(String name) final Class<?>
Get the test class for this test context.final Throwable
Get the exception that was thrown during execution of the test method.final Object
Get the current test instance for this test context.final Method
Get the current test method for this test context.boolean
Determine if the application context for this test context is present in the context cache.boolean
hasAttribute
(String name) void
markApplicationContextDirty
(DirtiesContext.HierarchyMode hierarchyMode) Mark the application context associated with this test context as dirty (i.e., by removing it from the context cache and closing it).removeAttribute
(String name) void
setAttribute
(String name, Object value) toString()
Provide a String representation of this test context's state.void
updateState
(Object testInstance, Method testMethod, Throwable testException) Update this test context to reflect the state of the currently executing test.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.springframework.test.context.TestContext
publishEvent
-
Constructor Details
-
DefaultTestContext
Copy constructor for creating a newDefaultTestContext
based on the attributes and immutable state of the supplied context.Immutable state includes all arguments supplied to the standard constructor.
- Throws:
NullPointerException
- if the suppliedDefaultTestContext
isnull
-
DefaultTestContext
public DefaultTestContext(Class<?> testClass, MergedContextConfiguration mergedContextConfiguration, CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate) Construct a newDefaultTestContext
from the supplied arguments.- Parameters:
testClass
- the test class for this test contextmergedContextConfiguration
- the merged application context configuration for this test contextcacheAwareContextLoaderDelegate
- the delegate to use for loading and closing the application context for this test context
-
-
Method Details
-
hasApplicationContext
public boolean hasApplicationContext()Determine if the application context for this test context is present in the context cache.- Specified by:
hasApplicationContext
in interfaceTestContext
- Returns:
true
if the application context has already been loaded and stored in the context cache- Since:
- 5.2
- See Also:
-
getApplicationContext
public org.springframework.context.ApplicationContext getApplicationContext()Get the application context for this test context.The default implementation delegates to the
CacheAwareContextLoaderDelegate
that was supplied when thisTestContext
was constructed.- Specified by:
getApplicationContext
in interfaceTestContext
- Returns:
- the application context (never
null
) - Throws:
IllegalStateException
- if the context returned by the context loader delegate is not active (i.e., has been closed)- See Also:
-
markApplicationContextDirty
Mark the application context associated with this test context as dirty (i.e., by removing it from the context cache and closing it).The default implementation delegates to the
CacheAwareContextLoaderDelegate
that was supplied when thisTestContext
was constructed.- Specified by:
markApplicationContextDirty
in interfaceTestContext
- Parameters:
hierarchyMode
- the context cache clearing mode to be applied if the context is part of a hierarchy (may benull
)- See Also:
-
getTestClass
Description copied from interface:TestContext
Get the test class for this test context.- Specified by:
getTestClass
in interfaceTestContext
- Returns:
- the test class (never
null
)
-
getTestInstance
Description copied from interface:TestContext
Get the current test instance for this test context.Note: this is a mutable property.
- Specified by:
getTestInstance
in interfaceTestContext
- Returns:
- the current test instance (never
null
) - See Also:
-
getTestMethod
Description copied from interface:TestContext
Get the current test method for this test context.Note: this is a mutable property.
- Specified by:
getTestMethod
in interfaceTestContext
- Returns:
- the current test method (never
null
) - See Also:
-
getTestException
Description copied from interface:TestContext
Get the exception that was thrown during execution of the test method.Note: this is a mutable property.
- Specified by:
getTestException
in interfaceTestContext
- Returns:
- the exception that was thrown, or
null
if no exception was thrown - See Also:
-
updateState
public void updateState(@Nullable Object testInstance, @Nullable Method testMethod, @Nullable Throwable testException) Description copied from interface:TestContext
Update this test context to reflect the state of the currently executing test.WARNING: This method should only be invoked by the
TestContextManager
.Caution: concurrent invocations of this method might not be thread-safe, depending on the underlying implementation.
- Specified by:
updateState
in interfaceTestContext
- Parameters:
testInstance
- the current test instance (may benull
)testMethod
- the current test method (may benull
)testException
- the exception that was thrown in the test method, ornull
if no exception was thrown
-
setAttribute
- Specified by:
setAttribute
in interfaceorg.springframework.core.AttributeAccessor
-
getAttribute
- Specified by:
getAttribute
in interfaceorg.springframework.core.AttributeAccessor
-
computeAttribute
- Specified by:
computeAttribute
in interfaceorg.springframework.core.AttributeAccessor
-
removeAttribute
- Specified by:
removeAttribute
in interfaceorg.springframework.core.AttributeAccessor
-
hasAttribute
- Specified by:
hasAttribute
in interfaceorg.springframework.core.AttributeAccessor
-
attributeNames
- Specified by:
attributeNames
in interfaceorg.springframework.core.AttributeAccessor
-
toString
Provide a String representation of this test context's state.
-