org.springframework.test.context.support
Class DependencyInjectionTestExecutionListener

java.lang.Object
  extended by org.springframework.test.context.support.AbstractTestExecutionListener
      extended by org.springframework.test.context.support.DependencyInjectionTestExecutionListener
All Implemented Interfaces:
TestExecutionListener

public class DependencyInjectionTestExecutionListener
extends AbstractTestExecutionListener

TestExecutionListener which provides support for dependency injection and initialization of test instances.

Since:
2.5
Author:
Sam Brannen, Juergen Hoeller

Field Summary
static String REINJECT_DEPENDENCIES_ATTRIBUTE
          Attribute name for a TestContext attribute which indicates whether or not the dependencies of a test instance should be reinjected in beforeTestMethod().
 
Constructor Summary
DependencyInjectionTestExecutionListener()
           
 
Method Summary
 void beforeTestMethod(TestContext testContext)
          If the REINJECT_DEPENDENCIES_ATTRIBUTE in the supplied test context has a value of Boolean.TRUE, this method will have the same effect as prepareTestInstance(); otherwise, this method will have no effect.
protected  void injectDependencies(TestContext testContext)
          Performs dependency injection and bean initialization for the supplied TestContext as described in prepareTestInstance().
 void prepareTestInstance(TestContext testContext)
          Performs dependency injection on the test instance of the supplied test context by autowiring and initializing the test instance via its own application context (without checking dependencies).
 
Methods inherited from class org.springframework.test.context.support.AbstractTestExecutionListener
afterTestClass, afterTestMethod, beforeTestClass
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

REINJECT_DEPENDENCIES_ATTRIBUTE

public static final String REINJECT_DEPENDENCIES_ATTRIBUTE
Attribute name for a TestContext attribute which indicates whether or not the dependencies of a test instance should be reinjected in beforeTestMethod(). Note that dependencies will be injected in prepareTestInstance() in any case.

Clients of a TestContext (e.g., other TestExecutionListeners) may therefore choose to set this attribute to signal that dependencies should be reinjected between execution of individual test methods.

Permissible values include Boolean.TRUE and Boolean.FALSE.

Constructor Detail

DependencyInjectionTestExecutionListener

public DependencyInjectionTestExecutionListener()
Method Detail

prepareTestInstance

public void prepareTestInstance(TestContext testContext)
                         throws Exception
Performs dependency injection on the test instance of the supplied test context by autowiring and initializing the test instance via its own application context (without checking dependencies).

The REINJECT_DEPENDENCIES_ATTRIBUTE will be subsequently removed from the test context, regardless of its value.

Specified by:
prepareTestInstance in interface TestExecutionListener
Overrides:
prepareTestInstance in class AbstractTestExecutionListener
Parameters:
testContext - the test context for the test; never null
Throws:
Exception - allows any exception to propagate

beforeTestMethod

public void beforeTestMethod(TestContext testContext)
                      throws Exception
If the REINJECT_DEPENDENCIES_ATTRIBUTE in the supplied test context has a value of Boolean.TRUE, this method will have the same effect as prepareTestInstance(); otherwise, this method will have no effect.

Specified by:
beforeTestMethod in interface TestExecutionListener
Overrides:
beforeTestMethod in class AbstractTestExecutionListener
Parameters:
testContext - the test context in which the test method will be executed; never null
Throws:
Exception - allows any exception to propagate

injectDependencies

protected void injectDependencies(TestContext testContext)
                           throws Exception
Performs dependency injection and bean initialization for the supplied TestContext as described in prepareTestInstance().

The REINJECT_DEPENDENCIES_ATTRIBUTE will be subsequently removed from the test context, regardless of its value.

Parameters:
testContext - the test context for which dependency injection should be performed (never null)
Throws:
Exception - allows any exception to propagate
See Also:
prepareTestInstance(TestContext), beforeTestMethod(TestContext)