org.springframework.test
Class AbstractDependencyInjectionSpringContextTests
java.lang.Objectjunit.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
populateProtectedVariablesproperty totruein 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 toAUTOWIRE_BY_NAMEorAUTOWIRE_NOinstead.- 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
ApplicationContextfor this test instance has not been configured (e.g., isnull), dependency injection will naturally not be performed, but an informational message will be written to the log.- Overrides:
prepareTestInstancein classAbstractSingleSpringContextTests
- 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 failureIllegalStateException- if theApplicationContextfor this test instance has not been configured- See Also:
populateProtectedVariables()
junit.framework.Assert