|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object junit.framework.Assert junit.framework.TestCase org.springframework.test.AbstractSpringContextTests org.springframework.test.AbstractDependencyInjectionSpringContextTests org.springframework.test.AbstractTransactionalSpringContextTests
public abstract class AbstractTransactionalSpringContextTests
Convenient superclass for tests that should occur in a transaction, but normally
will roll the transaction back on the completion of each test.
This is useful in a range of circumstances, allowing the following benefits:
This class is typically very fast, compared to traditional setup/teardown scripts.
If data should be left in the database, call the setComplete() method in each test. The defaultRollback() property, which defaults to true, determines whether transactions will complete by default.
Transactional behaviour requires a single bean in the context implementing the PlatformTransactionManager interface. This will be set by the superclass's Dependency Injection mechanism. If using the superclass's Field Injection mechanism, the implementation should be named "transactionManager". This mechanism allows the use of this superclass even when there's more than one transaction manager in the context.
This superclass can also be used without transaction management, if no PlatformTransactionManager bean is found in the context provided. Be careful about using this mode, as it allows the potential to permanently modify data. This mode is available only if dependency checking is turned off in the AbstractDependencyInjectionSpringContextTests superclass. The non-transactional capability is provided to enabled use of the same subclass in different environments.
Field Summary | |
---|---|
protected PlatformTransactionManager |
transactionManager
|
protected TransactionStatus |
transactionStatus
TransactionStatus for this test. |
Fields inherited from class org.springframework.test.AbstractDependencyInjectionSpringContextTests |
---|
applicationContext, managedVariableNames |
Fields inherited from class org.springframework.test.AbstractSpringContextTests |
---|
logger |
Constructor Summary | |
---|---|
AbstractTransactionalSpringContextTests()
|
Method Summary | |
---|---|
protected void |
endTransaction()
Immediately force a commit or rollback of the transaction, according to the complete flag. |
protected void |
onSetUp()
Subclasses can override this method in place of the setUp() method, which is final in this class. |
protected void |
onSetUpInTransaction()
Subclasses can override this method to perform any setup operations, such as populating a database table, in the transaction created by this class. |
protected void |
onTearDown()
Subclasses can override this to add custom behavior on teardown. |
protected void |
onTearDownInTransaction()
Subclasses can override this method to run invariant tests here. |
protected void |
setComplete()
Cause the transaction to commit for this test method, even if default is set to rollback. |
void |
setDefaultRollback(boolean defaultRollback)
Subclasses can set this value in their constructor to change default, which is always to roll the transaction back |
void |
setTransactionManager(PlatformTransactionManager ptm)
The transaction manager to use. |
Methods inherited from class org.springframework.test.AbstractDependencyInjectionSpringContextTests |
---|
contextKey, getConfigLocations, getLoadCount, initManagedVariableNames, isDependencyCheck, isPopulateProtectedVariables, loadContextLocations, populateProtectedVariables, setDependencyCheck, setDirty, setPopulateProtectedVariables, setUp, tearDown |
Methods inherited from class org.springframework.test.AbstractSpringContextTests |
---|
contextKeyString, getContext, hasCachedContext, loadContext, setDirty |
Methods inherited from class junit.framework.TestCase |
---|
countTestCases, createResult, getName, run, run, runBare, 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 |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected PlatformTransactionManager transactionManager
protected TransactionStatus transactionStatus
Constructor Detail |
---|
public AbstractTransactionalSpringContextTests()
Method Detail |
---|
public void setDefaultRollback(boolean defaultRollback)
public void setTransactionManager(PlatformTransactionManager ptm)
protected final void onSetUp() throws Exception
AbstractDependencyInjectionSpringContextTests
onSetUp
in class AbstractDependencyInjectionSpringContextTests
Exception
protected void onSetUpInTransaction() throws Exception
Exception
- simply let any exception propagateprotected final void onTearDown() throws Exception
AbstractDependencyInjectionSpringContextTests
onTearDown
in class AbstractDependencyInjectionSpringContextTests
Exception
protected void onTearDownInTransaction()
protected void setComplete() throws UnsupportedOperationException
UnsupportedOperationException
- if the operation cannot be set to complete
as no transaction manager was providedprotected void endTransaction()
Can be used to explicitly let the transaction end early, for example to check whether lazy associations of persistent objects work outside of a transaction (i.e. have been initialized properly).
setComplete()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |