参考:为什么阿里规定需要在事务注解@Transactional中指定rollbackFor?
SpringBoot单元测试,@Rollback事务回滚避免脏数据
在测试类上加上@Transactional
@SpringBootTest@Transactional //执行回滚public class UsersDaoTest {}
junit使用回滚注解@Rollback,配合事务注解@Transactional,来回滚事务。
RollBack可以定义在测试类上,对整个类起作用, ```java @SpringBootTest @Transactional @Rollback public class UserServiceTest { @Test void testInserUser() {
//向数据库增加一条用户信息inserUser(User user);
}
@Test void testDeleteUser() {
//删除一条用户信息deleteUser(int userId);
}
}
2. 也可以对方法单独定义。定义在类上,这样每个方法默认都是要回滚的。方法执行完单元测试,数据库不会产生脏数据。```java@Test@Rollbackvoid testMethod() {//向数据库增加一条用户信息inserUser(User user);}
- 如果测试的时候想要产生真实数据,可以将@Rollback设置为无效
@Test@Rollback(false)void testMethod() {//向数据库增加一条用户信息inserUser(User user);}
