| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.springframework.test.context.support.AbstractTestExecutionListener
org.springframework.test.context.transaction.TransactionalTestExecutionListener
public class TransactionalTestExecutionListener
 TestExecutionListener which provides support for executing
 tests within transactions by using
 @Transactional
 and @NotTransactional annotations.
 
Changes to the database during a test run with @Transactional will be run within a transaction that will, by default, be automatically rolled back after completion of the test; whereas, changes to the database during a test run with @NotTransactional will not be run within a transaction. Similarly, test methods that are not annotated with either @Transactional (at the class or method level) or @NotTransactional will not be run within a transaction.
 Transactional commit and rollback behavior can be configured via the
 class-level @TransactionConfiguration and
 method-level @Rollback annotations.
 @TransactionConfiguration also provides
 configuration of the bean name of the PlatformTransactionManager that
 is to be used to drive transactions.
 
 When executing transactional tests, it is sometimes useful to be able execute
 certain set up or tear down code outside of a
 transaction. TransactionalTestExecutionListener provides such
 support for methods annotated with
 @BeforeTransaction and
 @AfterTransaction.
 
TransactionConfiguration, 
Transactional, 
NotTransactional, 
Rollback, 
BeforeTransaction, 
AfterTransaction| Field Summary | |
|---|---|
| protected  TransactionAttributeSource | attributeSource | 
| Constructor Summary | |
|---|---|
| TransactionalTestExecutionListener() | |
| Method Summary | |
|---|---|
|  void | afterTestMethod(TestContext testContext)If a transaction is currently active for the test method of the supplied test context, this method will end the transaction
 and run@AfterTransaction methods. | 
|  void | beforeTestMethod(TestContext testContext)If the test method of the supplied test contextis
 configured to run within a transaction, this method will run@BeforeTransaction methodsand start a new
 transaction. | 
| protected  PlatformTransactionManager | getTransactionManager(TestContext testContext)Get the transaction managerto use
 for the suppliedtest context. | 
| protected  boolean | isDefaultRollback(TestContext testContext)Determine whether or not to rollback transactions by default for the supplied test context. | 
| protected  boolean | isRollback(TestContext testContext)Determine whether or not to rollback transactions for the supplied test contextby taking into consideration thedefault rollbackflag and a
 possible method-level override via theRollbackannotation. | 
| protected  void | runAfterTransactionMethods(TestContext testContext)Run all @AfterTransaction methodsfor the
 specifiedtest context. | 
| protected  void | runBeforeTransactionMethods(TestContext testContext)Run all @BeforeTransaction methodsfor the
 specifiedtest context. | 
| Methods inherited from class org.springframework.test.context.support.AbstractTestExecutionListener | 
|---|
| prepareTestInstance | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
protected final TransactionAttributeSource attributeSource
| Constructor Detail | 
|---|
public TransactionalTestExecutionListener()
| Method Detail | 
|---|
public void beforeTestMethod(TestContext testContext)
                      throws Exception
test context is
 configured to run within a transaction, this method will run
 @BeforeTransaction methods and start a new
 transaction.
 Note that if a @BeforeTransaction method fails,
 remaining @BeforeTransaction methods will not
 be invoked, and a transaction will not be started.
beforeTestMethod in interface TestExecutionListenerbeforeTestMethod in class AbstractTestExecutionListenertestContext - the test context in which the test method will be
 executed (never null)
Exception - allows any exception to propagateTransactional, 
NotTransactional
public void afterTestMethod(TestContext testContext)
                     throws Exception
test context, this method will end the transaction
 and run @AfterTransaction methods.
 @AfterTransaction methods are guaranteed to be
 invoked even if an error occurs while ending the transaction.
afterTestMethod in interface TestExecutionListenerafterTestMethod in class AbstractTestExecutionListenertestContext - the test context in which the test method was
 executed (never null)
Exception - allows any exception to propagate
protected void runBeforeTransactionMethods(TestContext testContext)
                                    throws Exception
@BeforeTransaction methods for the
 specified test context. If one of the methods fails,
 however, the caught exception will be rethrown in a wrapped
 RuntimeException, and the remaining methods will not
 be given a chance to execute.
testContext - the current test context
Exception
protected void runAfterTransactionMethods(TestContext testContext)
                                   throws Exception
@AfterTransaction methods for the
 specified test context. If one of the methods fails,
 the caught exception will be logged as an error, and the remaining
 methods will be given a chance to execute. After all methods have
 executed, the first caught exception, if any, will be rethrown.
testContext - the current test context
Exceptionprotected final PlatformTransactionManager getTransactionManager(TestContext testContext)
transaction manager to use
 for the supplied test context.
testContext - the test context for which the transaction manager
 should be retrieved
null if not found
BeansException - if an error occurs while retrieving the transaction manager
protected final boolean isDefaultRollback(TestContext testContext)
                                   throws Exception
test context.
testContext - the test context for which the default rollback flag
 should be retrieved
Exception - if an error occurs while determining the default rollback flag
protected final boolean isRollback(TestContext testContext)
                            throws Exception
test context by taking into consideration the
 default rollback flag and a
 possible method-level override via the Rollback annotation.
testContext - the test context for which the rollback flag
 should be retrieved
Exception - if an error occurs while determining the rollback flag| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||