public class

TestContextManager

extends Object
java.lang.Object
   ↳ org.springframework.test.context.TestContextManager

Class Overview

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:

Summary

Public Constructors
TestContextManager(Class<?> testClass)
Delegates to TestContextManager(Class, String) with a value of null for the default ContextLoader class name.
TestContextManager(Class<?> testClass, 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.
Public Methods
void afterTestClass()
Hook for post-processing a test class after execution of all tests within the class.
void afterTestMethod(Object testInstance, Method testMethod, 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(Object testInstance, 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.
final List<TestExecutionListener> getTestExecutionListeners()
Get the current TestExecutionListeners registered for this TestContextManager.
void prepareTestInstance(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.
Protected Methods
Set<Class<? extends TestExecutionListener>> getDefaultTestExecutionListenerClasses()
Determine the default TestExecutionListener classes.
final TestContext getTestContext()
Returns the TestContext managed by this TestContextManager.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public TestContextManager (Class<?> testClass)

Delegates to TestContextManager(Class, String) with a value of null for the default ContextLoader class name.

public TestContextManager (Class<?> testClass, 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.

Parameters
testClass the test class to be managed
defaultContextLoaderClassName the name of the default ContextLoader class to use (may be null)
See Also

Public Methods

public void afterTestClass ()

Hook for post-processing a test class after execution of all tests within the class. Should be called after any framework-specific after class methods (e.g., methods annotated with JUnit's org.junit.AfterClass @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.

Throws
Exception if a registered TestExecutionListener throws an exception

public void afterTestMethod (Object testInstance, Method testMethod, 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. Should be called after any framework-specific after methods (e.g., methods annotated with JUnit's org.junit.After @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.

Parameters
testInstance the current test instance (never null)
testMethod the test method which has just been executed on the test instance
exception the exception that was thrown during execution of the test method or by a TestExecutionListener, or null if none was thrown
Throws
Exception if a registered TestExecutionListener throws an exception

public void beforeTestClass ()

Hook for pre-processing a test class before execution of any tests within the class. Should be called prior to any framework-specific before class methods (e.g., methods annotated with JUnit's org.junit.BeforeClass @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.

Throws
Exception if a registered TestExecutionListener throws an exception

public void beforeTestMethod (Object testInstance, 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. Should be called prior to any framework-specific before methods (e.g., methods annotated with JUnit's org.junit.Before @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.

Parameters
testInstance the current test instance (never null)
testMethod the test method which is about to be executed on the test instance
Throws
Exception if a registered TestExecutionListener throws an exception

public final List<TestExecutionListener> getTestExecutionListeners ()

Get the current 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.

public void prepareTestInstance (Object testInstance)

Hook for preparing a test instance prior to execution of any individual test methods, for example for injecting dependencies, etc. Should be called immediately after instantiation of the test instance.

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.

Parameters
testInstance the test instance to prepare (never null)
Throws
Exception if a registered TestExecutionListener throws an exception

public void registerTestExecutionListeners (TestExecutionListener... testExecutionListeners)

Register the supplied TestExecutionListeners by appending them to the set of listeners used by this TestContextManager.

Protected Methods

protected Set<Class<? extends TestExecutionListener>> getDefaultTestExecutionListenerClasses ()

Determine the default TestExecutionListener classes.

protected final TestContext getTestContext ()

Returns the TestContext managed by this TestContextManager.