|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.test.context.TestContextManager
public class TestContextManager
TestContextManager
is the main entry point into the
Spring TestContext Framework, which provides support for loading and
accessing application contexts
, dependency
injection of test instances,
transactional
execution of test methods, etc.
Specifically, a TestContextManager
is responsible for managing a
single TestContext
and signaling events to all registered
TestExecutionListeners
at well defined test
execution points:
before test class execution
: prior to any
before class methods of a particular testing framework (e.g., JUnit
4's @BeforeClass
)test instance preparation
:
immediately following instantiation of the test instancebefore test method execution
:
prior to any before methods of a particular testing framework (e.g.,
JUnit 4's @Before
)after test method
execution
: after any after methods of a particular testing
framework (e.g., JUnit 4's @After
)after test class execution
: after any
after class methods of a particular testing framework (e.g., JUnit
4's @AfterClass
)
TestContext
,
TestExecutionListeners
,
ContextConfiguration
,
TransactionConfiguration
Field Summary | |
---|---|
(package private) static ContextCache |
contextCache
Cache of Spring application contexts. |
private static java.lang.String[] |
DEFAULT_TEST_EXECUTION_LISTENER_CLASS_NAMES
|
private static Log |
logger
|
private TestContext |
testContext
|
private java.util.List<TestExecutionListener> |
testExecutionListeners
|
Constructor Summary | |
---|---|
TestContextManager(java.lang.Class<?> testClass)
Delegates to TestContextManager(Class, String) with a value of
null for the default ContextLoader class name. |
|
TestContextManager(java.lang.Class<?> testClass,
java.lang.String defaultContextLoaderClassName)
Constructs a new TestContextManager for the specified test class
and automatically registers the
TestExecutionListeners configured for the test class
via the @TestExecutionListeners annotation. |
Method Summary | |
---|---|
void |
afterTestClass()
Hook for post-processing a test class after execution of all tests within the class. |
void |
afterTestMethod(java.lang.Object testInstance,
java.lang.reflect.Method testMethod,
java.lang.Throwable exception)
Hook for post-processing a test after execution of the supplied test method , for example for tearing down test fixtures,
ending a transaction, etc. |
void |
beforeTestClass()
Hook for pre-processing a test class before execution of any tests within the class. |
void |
beforeTestMethod(java.lang.Object testInstance,
java.lang.reflect.Method testMethod)
Hook for pre-processing a test before execution of the supplied test method , for example for setting up test fixtures,
starting a transaction, etc. |
protected java.util.Set<java.lang.Class<? extends TestExecutionListener>> |
getDefaultTestExecutionListenerClasses()
Determine the default TestExecutionListener classes. |
private java.util.List<TestExecutionListener> |
getReversedTestExecutionListeners()
Get a copy of the TestExecutionListeners
registered for this TestContextManager in reverse order. |
protected TestContext |
getTestContext()
Returns the TestContext managed by this
TestContextManager . |
java.util.List<TestExecutionListener> |
getTestExecutionListeners()
Get the current TestExecutionListeners
registered for this TestContextManager . |
void |
prepareTestInstance(java.lang.Object testInstance)
Hook for preparing a test instance prior to execution of any individual test methods, for example for injecting dependencies, etc. |
void |
registerTestExecutionListeners(TestExecutionListener... testExecutionListeners)
Register the supplied TestExecutionListeners
by appending them to the set of listeners used by this TestContextManager . |
private TestExecutionListener[] |
retrieveTestExecutionListeners(java.lang.Class<?> clazz)
Retrieve an array of newly instantiated TestExecutionListeners
for the specified class . |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final java.lang.String[] DEFAULT_TEST_EXECUTION_LISTENER_CLASS_NAMES
private static final Log logger
static final ContextCache contextCache
private final TestContext testContext
private final java.util.List<TestExecutionListener> testExecutionListeners
Constructor Detail |
---|
public TestContextManager(java.lang.Class<?> testClass)
TestContextManager(Class, String)
with a value of
null
for the default ContextLoader
class name.
public TestContextManager(java.lang.Class<?> testClass, java.lang.String defaultContextLoaderClassName)
TestContextManager
for the specified test class
and automatically registers
the
TestExecutionListeners
configured for the test class
via the @TestExecutionListeners
annotation.
testClass
- the test class to be manageddefaultContextLoaderClassName
- the name of the default
ContextLoader
class to use (may be null
)registerTestExecutionListeners(TestExecutionListener...)
,
retrieveTestExecutionListeners(Class)
Method Detail |
---|
protected final TestContext getTestContext()
TestContext
managed by this
TestContextManager
.
public void registerTestExecutionListeners(TestExecutionListener... testExecutionListeners)
TestExecutionListeners
by appending them to the set of listeners used by this TestContextManager
.
public final java.util.List<TestExecutionListener> getTestExecutionListeners()
TestExecutionListeners
registered for this TestContextManager
.
Allows for modifications, e.g. adding a listener to the beginning of the list. However, make sure to keep the list stable while actually executing tests.
private java.util.List<TestExecutionListener> getReversedTestExecutionListeners()
TestExecutionListeners
registered for this TestContextManager
in reverse order.
private TestExecutionListener[] retrieveTestExecutionListeners(java.lang.Class<?> clazz)
TestExecutionListeners
for the specified class
. If @TestExecutionListeners
is not present on the supplied class, the default listeners will be returned.
Note that the inheritListeners
flag of
@TestExecutionListeners
will be taken into consideration.
Specifically, if the inheritListeners
flag is set to true
, listeners
defined in the annotated class will be appended to the listeners defined in superclasses.
clazz
- the test class for which the listeners should be retrieved
protected java.util.Set<java.lang.Class<? extends TestExecutionListener>> getDefaultTestExecutionListenerClasses()
TestExecutionListener
classes.
public void beforeTestClass() throws java.lang.Exception
@BeforeClass
).
An attempt will be made to give each registered
TestExecutionListener
a chance to pre-process the test class
execution. If a listener throws an exception, however, the remaining
registered listeners will not be called.
java.lang.Exception
- if a registered TestExecutionListener throws an
exceptiongetTestExecutionListeners()
public void prepareTestInstance(java.lang.Object testInstance) throws java.lang.Exception
The managed TestContext
will be updated with the supplied
testInstance
.
An attempt will be made to give each registered
TestExecutionListener
a chance to prepare the test instance. If a
listener throws an exception, however, the remaining registered listeners
will not be called.
testInstance
- the test instance to prepare (never null
)
java.lang.Exception
- if a registered TestExecutionListener throws an exceptiongetTestExecutionListeners()
public void beforeTestMethod(java.lang.Object testInstance, java.lang.reflect.Method testMethod) throws java.lang.Exception
test method
, for example for setting up test fixtures,
starting a transaction, etc. Should be called prior to any
framework-specific before methods (e.g., methods annotated with
JUnit's @Before
).
The managed TestContext
will be updated with the supplied
testInstance
and testMethod
.
An attempt will be made to give each registered
TestExecutionListener
a chance to pre-process the test method
execution. If a listener throws an exception, however, the remaining
registered listeners will not be called.
testInstance
- the current test instance (never null
)testMethod
- the test method which is about to be executed on the
test instance
java.lang.Exception
- if a registered TestExecutionListener throws an exceptiongetTestExecutionListeners()
public void afterTestMethod(java.lang.Object testInstance, java.lang.reflect.Method testMethod, java.lang.Throwable exception) throws java.lang.Exception
test method
, for example for tearing down test fixtures,
ending a transaction, etc. Should be called after any framework-specific
after methods (e.g., methods annotated with JUnit's
@After
).
The managed TestContext
will be updated with the supplied
testInstance
, testMethod
, and
exception
.
Each registered TestExecutionListener
will be given a chance to
post-process the test method execution. If a listener throws an
exception, the remaining registered listeners will still be called, but
the first exception thrown will be tracked and rethrown after all
listeners have executed. Note that registered listeners will be executed
in the opposite order in which they were registered.
testInstance
- the current test instance (never null
)testMethod
- the test method which has just been executed on the
test instanceexception
- the exception that was thrown during execution of the
test method or by a TestExecutionListener, or null
if none
was thrown
java.lang.Exception
- if a registered TestExecutionListener throws an exceptiongetTestExecutionListeners()
public void afterTestClass() throws java.lang.Exception
@AfterClass
).
Each registered TestExecutionListener
will be given a chance to
post-process the test class. If a listener throws an exception, the
remaining registered listeners will still be called, but the first
exception thrown will be tracked and rethrown after all listeners have
executed. Note that registered listeners will be executed in the opposite
order in which they were registered.
java.lang.Exception
- if a registered TestExecutionListener throws an exceptiongetTestExecutionListeners()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |