KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have several integration tests for various services that extend the following baseclass: @ContextConfiguration(locations="classpath:applicationContext-test.xml") @TransactionConfiguration(transactionManager="txManager", defaultRollback=true) @Transactional public abstract class IntegrationTestBase extends AbstractTransactionalJUnit4SpringContextTests { //Some setup, filling test data to a HSQLDB-database etc } For most cases this works fine, but I have a service class which has transactions defined with propagation=Propagation.REQUIRES_NEW . It seems these transactions are not rolled back (because they are nested transactions and apparently commit within the "outer" transaction?). The "outer" (test-case level) transaction is rolled back, at least according to test logs. The committed transactions mess up some later tests, because they have changed the test data. I can get around this by forcing the test to re-create and re-populate the database between tests, but my question is, is this expected behavior or am I doing something wrong in my tests? Can the nested transaction be forced to rollback from the testing code?
Tags (comma-separated)
Save Edits
Cancel