## org.springframework.test
Class AbstractDependencyInjectionSpringContextTests

    java.lang.Object
      junit.framework.Assert
          junit.framework.TestCase
              org.springframework.test.ConditionalTestCase
                  org.springframework.test.AbstractSpringContextTests
                      org.springframework.test.AbstractSingleSpringContextTests
                          org.springframework.test.AbstractDependencyInjectionSpringContextTests

All Implemented Interfaces:
  junit.framework.Test

Direct Known Subclasses:
  AbstractTransactionalSpringContextTests

    public abstract class AbstractDependencyInjectionSpringContextTests

extends AbstractSingleSpringContextTests

Convenient superclass for JUnit 3.8 based tests depending on a Spring context. The test instance itself is populated by Dependency Injection.

Really for integration testing, not unit testing. You should not normally use the Spring container for unit tests: simply populate your POJOs in plain JUnit tests!

This supports two modes of populating the test:

- Via Setter Dependency Injection. Simply express dependencies on objects in the test fixture, and they will be satisfied by autowiring by type.
- Via Field Injection. Declare protected variables of the required type which match named beans in the context. This is autowire by name, rather than type. This approach is based on an approach originated by Ara Abrahmian. Setter Dependency Injection is the default: set the `populateProtectedVariables` property to `true` in the constructor to switch on Field Injection.

Since:
  1.1.1
Author:
  Rod Johnson, Rob Harrop, Rick Evans, Sam Brannen
See Also:
  `AbstractSingleSpringContextTests.setDirty()`, `AbstractSingleSpringContextTests.contextKey()`, `AbstractSpringContextTests.getContext(java.lang.Object)`, `AbstractSingleSpringContextTests.getConfigLocations()`

Field Summary
`static int` `AUTOWIRE_BY_NAME` Constant that indicates autowiring bean properties by name.
`static int` `AUTOWIRE_BY_TYPE` Constant that indicates autowiring bean properties by type.
`static int` `AUTOWIRE_NO` Constant that indicates no autowiring at all.

Fields inherited from class org.springframework.test.AbstractSingleSpringContextTests
`applicationContext`

Fields inherited from class org.springframework.test.ConditionalTestCase
`logger`

Constructor Summary
`AbstractDependencyInjectionSpringContextTests()` Default constructor for AbstractDependencyInjectionSpringContextTests.
`AbstractDependencyInjectionSpringContextTests(String name)` Constructor for AbstractDependencyInjectionSpringContextTests with a JUnit name.

Method Summary
`int` `getAutowireMode()` Return the autowire mode for test properties set by Dependency Injection.
`protected void` `injectDependencies()` Inject dependencies into 'this' instance (that is, this test instance).
`boolean` `isDependencyCheck()` Return whether or not dependency checking should be performed for test properties set by Dependency Injection.
`boolean` `isPopulateProtectedVariables()` Return whether to populate protected variables of this test case.
`protected void` `prepareTestInstance()` Prepare this test instance, injecting dependencies into its protected fields and its bean properties.
`void` `setAutowireMode(int autowireMode)` Set the autowire mode for test properties set by Dependency Injection.
`void` `setDependencyCheck(boolean dependencyCheck)` Set whether or not dependency checking should be performed for test properties set by Dependency Injection.
`void` `setPopulateProtectedVariables(boolean populateFields)` Set whether to populate protected variables of this test case.

Methods inherited from class org.springframework.test.AbstractSingleSpringContextTests
`contextKey, createApplicationContext, createBeanDefinitionReader, customizeBeanFactory, getApplicationContext, getConfigLocations, getConfigPath, getConfigPaths, getLoadCount, loadContext, loadContextLocations, onSetUp, onTearDown, prepareApplicationContext, setDirty, setUp, tearDown`

Methods inherited from class org.springframework.test.AbstractSpringContextTests
`addContext, contextKeyString, getContext, hasCachedContext, isContextKeyEmpty, setDirty`

Methods inherited from class org.springframework.test.ConditionalTestCase
`getDisabledTestCount, isDisabledInThisEnvironment, recordDisabled, runBare`

Methods inherited from class junit.framework.TestCase
`countTestCases, createResult, getName, run, run, runTest, setName, toString`

Methods inherited from class junit.framework.Assert

`assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame, format`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### AUTOWIRE_NO

    public static final int AUTOWIRE_NO

  Constant that indicates no autowiring at all.

  See Also:
    `setAutowireMode(int)`, Constant Field Values

### AUTOWIRE_BY_NAME

    public static final int AUTOWIRE_BY_NAME

  Constant that indicates autowiring bean properties by name.

  See Also:
    `setAutowireMode(int)`, Constant Field Values

### AUTOWIRE_BY_TYPE

    public static final int AUTOWIRE_BY_TYPE

  Constant that indicates autowiring bean properties by type.

  See Also:
    `setAutowireMode(int)`, Constant Field Values

Constructor Detail

### AbstractDependencyInjectionSpringContextTests

    public AbstractDependencyInjectionSpringContextTests()

  Default constructor for AbstractDependencyInjectionSpringContextTests.

### AbstractDependencyInjectionSpringContextTests

    public AbstractDependencyInjectionSpringContextTests(String name)

  Constructor for AbstractDependencyInjectionSpringContextTests with a JUnit name.

  Parameters:
    `name` - the name of this text fixture

Method Detail

### setPopulateProtectedVariables

    public final void setPopulateProtectedVariables(boolean populateFields)

  Set whether to populate protected variables of this test case. Default is `false`.

### isPopulateProtectedVariables

    public final boolean isPopulateProtectedVariables()

  Return whether to populate protected variables of this test case.

### setAutowireMode

    public final void setAutowireMode(int autowireMode)

  Set the autowire mode for test properties set by Dependency Injection.

  The default is `AUTOWIRE_BY_TYPE`. Can be set to `AUTOWIRE_BY_NAME` or `AUTOWIRE_NO` instead.

  See Also:
    `AUTOWIRE_BY_TYPE`, `AUTOWIRE_BY_NAME`, `AUTOWIRE_NO`

### getAutowireMode

    public final int getAutowireMode()

  Return the autowire mode for test properties set by Dependency Injection.

### setDependencyCheck

    public final void setDependencyCheck(boolean dependencyCheck)

  Set whether or not dependency checking should be performed for test properties set by Dependency Injection.

  The default is `true`, meaning that tests cannot be run unless all properties are populated.

### isDependencyCheck

    public final boolean isDependencyCheck()

  Return whether or not dependency checking should be performed for test properties set by Dependency Injection.

### prepareTestInstance

    protected void prepareTestInstance()
                                throws Exception

  Prepare this test instance, injecting dependencies into its protected fields and its bean properties.

  Note: if the `ApplicationContext` for this test instance has not been configured (e.g., is `null`), dependency injection will naturally not be performed, but an informational message will be written to the log.

  Overrides:
    `prepareTestInstance` in class `AbstractSingleSpringContextTests`
  Throws:
    `Exception` - in case of preparation failure
  See Also:
    `injectDependencies()`

### injectDependencies

    protected void injectDependencies()
                               throws Exception

  Inject dependencies into 'this' instance (that is, this test instance).

  The default implementation populates protected variables if the `appropriate flag is set`, else uses autowiring if autowiring is switched on (which it is by default).

  Override this method if you need full control over how dependencies are injected into the test instance.

  Throws:
    `Exception` - in case of dependency injection failure
    `IllegalStateException` - if the `ApplicationContext` for this test instance has not been configured
  See Also:
    `populateProtectedVariables()`

Copyright © 2002-2008 The Spring Framework.