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.st.context.SpringBootTest;
@SpringBootTest
class SpringBootTestWebApplicationTests {
@Testspring boot选择题
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),如下图:
注:
1. 通过@RunWith注解,更改测试运⾏器,更改使⽤的测试类为SpringRunner.class,使之适应spring。
2. @RunWith(SpringRunner.class)使⽤了Spring的SpringRunner,以便在测试开始的时候⾃动创建Spring的应⽤上下⽂。其他的想创建
spring容器的话,就得⼦啊l配置classloder。注解了@RunWith就可以直接使⽤spring容器,直接使⽤@Test注解,不⽤启动spring容器
3. 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.st.context.SpringBootTest; import st.context.junit4.SpringRunner; @RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootTestApplicationTests {
@Test
public void contextLoads() {
System.out.println("hello world");
}
}
运⾏结果:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论