Spring 的 TestNG 回滚事务不起作用
Posted
技术标签:
【中文标题】Spring 的 TestNG 回滚事务不起作用【英文标题】:Spring's TestNG rollback transaction not working 【发布时间】:2018-12-19 06:49:34 【问题描述】:在我的 general question 之后,我在使用 spring jdbcTemplate
时遇到了一个特定问题,我想在每次执行以下 DAO 方法后回滚特定的测试方法。
添加@Transactional
和@Rollback(true)
未能回滚插入
还在之前/之后获得连接并回滚它不起作用
@Test
@Transactional
@Rollback(true)
public void testInsertUser()
Assert.assertEquals(userDAO.insertUser(new User(55616103, true, true, false)), true);
我应该如何使用 TestNG 框架回滚单元测试?大多数answers使用Junit的@RunWith(SpringJUnit4ClassRunner.class)
我使用 TestNG 自动连接 jdbcTemplate
失败:
@Autowired
private JdbcTemplate jdbcTemplate;
但成功使用 SpringJUnit4ClassRunner
并包含配置类包括 jdbcTemplate/DataStource
TestNG 是否可以选择使用 Spring 上下文执行?
【问题讨论】:
【参考方案1】:解决方案是将AbstractTestNGSpringContextTests
替换为AbstractTransactionalTestNGSpringContextTests
。
参考:Spring + TestNG not transactionally rollback
【讨论】:
以上是关于Spring 的 TestNG 回滚事务不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Spring @Transactional注解不回滚不起作用无效
Spring Batch tasklet中的嵌套事务不起作用