The Spring Framework

org.springframework.test.context
Class TestContextManager

java.lang.Object
  extended by org.springframework.test.context.TestContextManager

public class TestContextManager
extends Object

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:

Since:
2.5
Author:
Sam Brannen, Juergen Hoeller
See Also:
TestContext, TestExecutionListeners, ContextConfiguration, TransactionConfiguration

Constructor Summary
TestContextManager(Class<?> testClass)
          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 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 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.
protected  Set<Class<? extends TestExecutionListener>> getDefaultTestExecutionListenerClasses()
          Determine the default TestExecutionListener classes.
protected  TestContext getTestContext()
          Returns the TestContext managed by this TestContextManager.
 List<TestExecutionListener> getTestExecutionListeners()
          Gets an unmodifiable copy of the 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TestContextManager

public TestContextManager(Class<?> testClass)
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 Class object corresponding to the test class to be managed
See Also:
registerTestExecutionListeners(TestExecutionListener...), retrieveTestExecutionListeners(Class)
Method Detail

getTestContext

protected final TestContext getTestContext()
Returns the TestContext managed by this TestContextManager.


registerTestExecutionListeners

public void registerTestExecutionListeners(TestExecutionListener... testExecutionListeners)
Register the supplied TestExecutionListeners by appending them to the set of listeners used by this TestContextManager.


getTestExecutionListeners

public final List<TestExecutionListener> getTestExecutionListeners()
Gets an unmodifiable copy of the TestExecutionListeners registered for this TestContextManager.


getDefaultTestExecutionListenerClasses

protected Set<Class<? extends TestExecutionListener>> getDefaultTestExecutionListenerClasses()
Determine the default TestExecutionListener classes.


prepareTestInstance

public void prepareTestInstance(Object testInstance)
                         throws Exception
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
See Also:
getTestExecutionListeners()

beforeTestMethod

public void beforeTestMethod(Object testInstance,
                             Method testMethod)
                      throws Exception
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 @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
See Also:
getTestExecutionListeners()

afterTestMethod

public void afterTestMethod(Object testInstance,
                            Method testMethod,
                            Throwable exception)
                     throws 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 @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
See Also:
getTestExecutionListeners()

The Spring Framework

Copyright © 2002-2008 The Spring Framework.