java.lang.Object | ||
↳ | org.springframework.test.context.support.AbstractTestExecutionListener | |
↳ | org.springframework.test.context.transaction.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
.
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
attributeSource |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
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 . | |||||||||||
If the test method of the supplied
test context is
configured to run within a transaction, this method will run
@BeforeTransaction methods and start a new
transaction. |
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Get the
transaction manager to use
for the supplied test context . | |||||||||||
Determine whether or not to rollback transactions by default for the
supplied
test context . | |||||||||||
Determine whether or not to rollback transactions for the supplied
test context by taking into consideration the
default rollback flag and a
possible method-level override via the Rollback annotation. | |||||||||||
Run all
@AfterTransaction methods for the
specified test context . | |||||||||||
Run all
@BeforeTransaction methods for the
specified test context . |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.test.context.support.AbstractTestExecutionListener
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
org.springframework.test.context.TestExecutionListener
|
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
.
@AfterTransaction methods
are guaranteed to be
invoked even if an error occurs while ending the transaction.
testContext | the test context in which the test method was
executed; never null |
---|
Exception |
---|
If the test method of the supplied 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.
testContext | the test context in which the test method will be
executed; never null |
---|
Exception |
---|
Get the transaction manager
to use
for the supplied test context
.
testContext | the test context for which the transaction manager should be retrieved |
---|
null
if not foundBeansException | if an error occurs while retrieving the transaction manager |
---|
Determine whether or not to rollback transactions by default for the
supplied 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 |
---|
Determine whether or not to rollback transactions for the supplied
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 |
---|
Run all @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 |
---|
Exception |
---|
Run all @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 |
---|