SpringBoot高版本修改为低版本时测试类报错的解决方案
更新时间:2021年09月18日 10:13:33 作者:象牙酥
这篇文章主要介绍了SpringBoot高版本修改为低版本时测试类报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
高版本改低版本时测试类报错
有时在使用idea通过Spring Initailizr创建项目时,默认只能创建最近的版本的SpringBoot项目。
这是如果想要换成版本,就可以在项目创建好了之后,在pom文件中直接将版本修改过来。
如下所示
比如在创建项目时默认的版本为2.2.2版本
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
然后我们修改为1.5.10的低版本
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.10.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
这时可能会遇到一个问题,那就是——在高版本时,默认的测试类是没问题可以使用的
import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class SpringBootTestWebApplicationTests { @Test void contextLoads() { System.out.println("hello world"); } }
但是在更换成低版本之后,测试类将会报错,如下所示,无法导入在2.2.2高版本中使用的org.junit.jupiter.api.Test类
此时可以做如下修改
1、删除高版本默认导入的org.junit.jupiter.api.Test类
重新导入org.junit.Test类
2、在类上添加注释@RunWith(SpringRunner.class)
如下图:
注:
- 通过@RunWith注解,更改测试运行器,更改使用的测试类为SpringRunner.class,使之适应spring。
- @RunWith(SpringRunner.class)使用了Spring的SpringRunner,以便在测试开始的时候自动创建Spring的应用上下文。其他的想创建spring容器的话,就得子啊web.xml配置classloder。 注解了@RunWith就可以直接使用spring容器,直接使用@Test注解,不用启动spring容器
- SpringRunner 继承了SpringJUnit4ClassRunner,没有扩展任何功能(查看源码可以看到public final class SpringRunner extends SpringJUnit4ClassRunner);使用前者,名字简短而已
3、将测试类和测试方法都修改为public
4、最后修改的测试类如下所示
package com.susu.springboot; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class SpringBootTestApplicationTests { @Test public void contextLoads() { System.out.println("hello world"); } }
运行结果:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringCloud_Sleuth分布式链路请求跟踪的示例代码
Spring Cloud Sleuth是一款针对Spring Cloud的分布式跟踪工具,本文通过实例代码介绍了SpringCloud_Sleuth分布式链路请求跟踪,感兴趣的朋友跟随小编一起看看吧2023-02-02spring为java.util.Properties类型的属性进行赋值过程解析
这篇文章主要介绍了spring为java.util.Properties类型的属性进行赋值过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-01-01使用java + selenium + OpenCV破解腾讯防水墙滑动验证码功能
这篇文章主要介绍了使用java + selenium + OpenCV破解腾讯防水墙滑动验证码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-11-11
最新评论