Springboot使⽤Junit测试没有插⼊数据的原因
从写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.启动类或者程序⼊⼝类的包名和测试类所在包名不⼀致
例如:
启动类:upackage下的启动类
测试类:st下的测试类,“.test”多余
2.程序⼊⼝类忘了添加:SpringBootApplication注解
以上这篇Springboot使⽤Junit测试没有插⼊数据的原因就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论