## org.springframework.test.context.support
Class DependencyInjectionTestExecutionListener

    java.lang.Object
      org.springframework.test.context.support.AbstractTestExecutionListener
          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)`