0


springboot Junit单元测试默认事务不提交

目录

一、Junit初次使用

因为以前总觉得Junit单元测试配置比较繁琐,代码功能大多使用main方法或者postman测试,直到最近才使用单元测试,在测试过程中遇到了事务不提交的问题,一直以为是代码问题,后来才直到单元测试默认不提交事务,记录下来,防止以后再次踩坑。


二、Junit事务问题

1. 默认不提交事务(默认回滚)

@SpringBootTest(classes =WebappApplication.class)@RunWith(SpringRunner.class)classWebappApplicationTests{@AutowiredWithdrawAccountInfoMapper withdrawAccountInfoMapper;@Test@TransactionalvoidtestEvent(){WithdrawAccountInfo withdrawAccountInfo =newWithdrawAccountInfo();
        withdrawAccountInfo.setBizId(2);//入库操作
        withdrawAccountInfoMapper.insertSelective(withdrawAccountInfo);...
            调用其他业务方法
        ...}}

如上,入库操作不会实现真正入库,sql执行了,但是会回滚,那么,如何提交事务呢,看如下方法。


2. 设置rollback,让Junit提交事务

通过添加@Rollback(false)注解,强制不回滚

@SpringBootTest(classes =WebappApplication.class)@RunWith(SpringRunner.class)classWebappApplicationTests{@AutowiredWithdrawAccountInfoMapper withdrawAccountInfoMapper;@Test@Transactional@Rollback(false)voidtestEvent(){WithdrawAccountInfo withdrawAccountInfo =newWithdrawAccountInfo();
        withdrawAccountInfo.setBizId(2);//入库操作
        withdrawAccountInfoMapper.insertSelective(withdrawAccountInfo);...
            调用其他业务方法
        ...}}

这样,Junit默认的rollback(true),就改成了false,就可以正常提交事务了。


本文转载自: https://blog.csdn.net/u012880161/article/details/126936176
版权归原作者 人生大事 所有, 如有侵权,请联系我们删除。

“springboot Junit单元测试默认事务不提交”的评论:

还没有评论