org.springframework.test
Class AbstractDependencyInjectionSpringContextTests

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by org.springframework.test.ConditionalTestCase
              extended by org.springframework.test.AbstractSpringContextTests
                  extended by org.springframework.test.AbstractSingleSpringContextTests
                      extended by 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:

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.