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
。
参考:
根据我的 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
。
参考: