一、Junit初次使用
因?yàn)橐郧翱傆X得Junit單元測(cè)試配置比較繁瑣,代碼功能大多使用main方法或者postman測(cè)試,直到最近才使用單元測(cè)試,在測(cè)試過程中遇到了事務(wù)不提交的問題,一直以為是代碼問題,后來(lái)才直到單元測(cè)試默認(rèn)不提交事務(wù),記錄下來(lái),防止以后再次踩坑。
二、Junit事務(wù)問題
1. 默認(rèn)不提交事務(wù)(默認(rèn)回滾)
@SpringBootTest(classes = WebappApplication.class)
@RunWith(SpringRunner.class)
class WebappApplicationTests {
@Autowired
WithdrawAccountInfoMapper withdrawAccountInfoMapper;
@Test
@Transactional
void testEvent(){
WithdrawAccountInfo withdrawAccountInfo = new WithdrawAccountInfo();
withdrawAccountInfo.setBizId(2);
//入庫(kù)操作
withdrawAccountInfoMapper.insertSelective(withdrawAccountInfo);
...
調(diào)用其他業(yè)務(wù)方法
...
}
}
如上,入庫(kù)操作不會(huì)實(shí)現(xiàn)真正入庫(kù),sql執(zhí)行了,但是會(huì)回滾,那么,如何提交事務(wù)呢,看如下方法。
2. 設(shè)置rollback,讓Junit提交事務(wù)
通過添加@Rollback(false)注解,強(qiáng)制不回滾文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-499603.html
@SpringBootTest(classes = WebappApplication.class)
@RunWith(SpringRunner.class)
class WebappApplicationTests {
@Autowired
WithdrawAccountInfoMapper withdrawAccountInfoMapper;
@Test
@Transactional
@Rollback(false)
void testEvent(){
WithdrawAccountInfo withdrawAccountInfo = new WithdrawAccountInfo();
withdrawAccountInfo.setBizId(2);
//入庫(kù)操作
withdrawAccountInfoMapper.insertSelective(withdrawAccountInfo);
...
調(diào)用其他業(yè)務(wù)方法
...
}
}
這樣,Junit默認(rèn)的rollback(true),就改成了false,就可以正常提交事務(wù)了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-499603.html
到了這里,關(guān)于springboot Junit單元測(cè)試默認(rèn)事務(wù)不提交的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!