Spring 的 TestNG 回滚事务不工作

Spring's TestNG rollback transaction not working

根据我的 我在使用 spring jdbcTemplate 时遇到了一个具体问题,我想在每次执行下面的 DAO 方法后回滚特定测试方法。

添加 @Transactional@Rollback(true) 回滚插入失败

同时获取连接 before/after 并回滚它不影响

@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 包含配置 class 包含 jdbcTemplate/DataStource

TestNG 是否可以选择使用 Spring 上下文来执行?

解决方法是将AbstractTestNGSpringContextTests替换为AbstractTransactionalTestNGSpringContextTests

参考: