时间:2021-05-19
我们先来看下笔者的单元测试的依赖版本:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies>我用的是2.x的spring-boot,查阅的网上的资料,发现在新版本中,spring-boot用的是junit 5.x,这就发现问题了,在junit4.x版本之前,生效的是@Before主键,这没错。
然而在junit 5.x中,@Before主键被@BeforeEach所替代,因此就不生效了。
补充知识:springboot 2.0 单元测试配置踩的坑
1,错误配置1
会抛出
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=testSms], {ExactMatcher:fDisplayName=testSms(com.hm.system.manager.service.TestService)], {LeadingIdentifierMatcher:fClassName=com.hm.system.manager.service.TestService,fLeadingIdentifier=testSms]] from org.junit.internal.requests.ClassRequest@7ac7a4e4 at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:37) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:77) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:68) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192正确配置:
错误配置二
springboot 2.0版本只配置了 这个jar
会抛出 如下异常
正确配置
junit对springboot的版本有很强的依赖关系 ,别搞错了 ,2.0的请用 4.12 切记,踩过的坑!!!!
springboot 2.0后的版本,请添加 net.minidev.asm 的jar包
以上这篇浅谈spring-boot的单元测试中,@Before不被执行的原因就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
目前spring-boot成为了java开发的主流框架,cucumber作为一款支持dsl的自动化测试工具,很适合用户编写dsl优化过的单元测试等测试用例。本文
spring-boot是基于spring框架的,它并不是对spring框架的功能增强,而是对spring的一种快速构建的方式。spring-boot应用程序提供
问题描述在spring-boot启动时,希望能执行相应的sql文件来初始化数据库。使用配置文件初始化数据库可以在spring-boot的配置文件applicat
了解过spring-Boot这个技术的,应该知道Spring-Boot的核心配置文件application.properties,当然也可以通过注解自定义配置文
1.什么是spring-boot-devtoolsspring-boot-devtools是spring-boot项目开发时的一个热部署工具,安装了spring