重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小编这次要给大家分享的是Springboot使用Junit测试为什么没有插入数据,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
成都创新互联长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为镇平企业提供专业的网站设计、成都做网站,镇平网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。从写Junit开始笔者就有一个疑问,为什么执行插入测试方法成功了但是数据库里却没有对应数据,那怎么测试的呢?今天查阅了资料找到了原因
1.Junit测试原理
springboot中使用junit编写单元测试默认是事物回滚的,这样测试的脏数据不影响数据库,即实际上是执行了对应的插入操作,但是完成操作后执行了事务回滚操作,从而数据库中没有对应数据。
2.关闭自动事务回滚
在对应的测试方法上添加@Rollback(false)关闭回滚。
补充知识:Spring Boot Junit无法执行问题汇总
Spring Boot Junit无法执行问题汇总如下:
测试方法必须是public
在测试方法上要有@Test注解
测试方法不能用static静态修饰
测试方法不能有返回值
测试方法不能有参数
测试类所在文件夹必须为源文件夹source files,如果不是,选择 ‘Build path' -> ‘Use as a source folder'。
测试类是否继承TestCase,如果是,删除继承
如果在类上执行junit run单元测试报错:unable to find a @SpringBootConfiguration
Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test
无法找到@SpringBootConfiguration,您需要在测试中使用@ContextConfiguration或@SpringBootTest(classes=…)
问题产生的几种情况:
1.启动类 或者 程序入口类的包名和测试类所在包名不一致
例如:
启动类:com.youpackage下的启动类
测试类:com.youpackage.test下的测试类,“.test”多余
2.程序入口类忘了添加:SpringBootApplication注解
看完这篇关于Springboot使用Junit测试为什么没有插入数据的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。