DependencyInjectionTestExecutionListener (Spring Framework 3.2.1.RELEASE API)
Date: 2013-01-24

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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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

    Constructors
    Constructor and Description
    `DependencyInjectionTestExecutionListener()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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)`