无法让@Rollback为我的Spring JPA集成测试工作
这是我的一个小测试课程。 问题是它在每次测试运行后都没有回滚事务。 我做错了什么? 🙂
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "/META-INF/catalog-spring.xml" }) @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true) public class TermTest { @Autowired private CatalogService service; @Rollback(true) @Test public void testSimplePersist() { Term term = new Term(); term.setDescription("Description"); term.setName("BirdSubject8"); term.setIsEnabled("F"); term.setIsSystem("F"); term.setTermType("TERM"); service.createTerm(term); } }
和我的spring配置
除了@TransactionConfiguration
之外,您还需要@TransactionConfiguration
:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "/META-INF/catalog-spring.xml" }) @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true) @Transactional public class TermTest { ... }
在4.0之后的版本中,因为不推荐使用TransactionConfiguration
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "/config/spring-config.xml") @Transactional public class UserTest { @Rollback public void test(){ } }