SpringBoot高版本修改為低版本時(shí)測(cè)試類報(bào)錯(cuò)的解決方案
高版本改低版本時(shí)測(cè)試類報(bào)錯(cuò)
有時(shí)在使用idea通過Spring Initailizr創(chuàng)建項(xiàng)目時(shí),默認(rèn)只能創(chuàng)建最近的版本的SpringBoot項(xiàng)目。
這是如果想要換成版本,就可以在項(xiàng)目創(chuàng)建好了之后,在pom文件中直接將版本修改過來。
如下所示
比如在創(chuàng)建項(xiàng)目時(shí)默認(rèn)的版本為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>
這時(shí)可能會(huì)遇到一個(gè)問題,那就是——在高版本時(shí),默認(rèn)的測(cè)試類是沒問題可以使用的
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SpringBootTestWebApplicationTests {
@Test
void contextLoads() {
System.out.println("hello world");
}
}
但是在更換成低版本之后,測(cè)試類將會(huì)報(bào)錯(cuò),如下所示,無法導(dǎo)入在2.2.2高版本中使用的org.junit.jupiter.api.Test類

此時(shí)可以做如下修改
1、刪除高版本默認(rèn)導(dǎo)入的org.junit.jupiter.api.Test類
重新導(dǎo)入org.junit.Test類

2、在類上添加注釋@RunWith(SpringRunner.class)
如下圖:

注:
- 通過@RunWith注解,更改測(cè)試運(yùn)行器,更改使用的測(cè)試類為SpringRunner.class,使之適應(yīng)spring。
- @RunWith(SpringRunner.class)使用了Spring的SpringRunner,以便在測(cè)試開始的時(shí)候自動(dòng)創(chuàng)建Spring的應(yīng)用上下文。其他的想創(chuàng)建spring容器的話,就得子啊web.xml配置classloder。 注解了@RunWith就可以直接使用spring容器,直接使用@Test注解,不用啟動(dòng)spring容器
- SpringRunner 繼承了SpringJUnit4ClassRunner,沒有擴(kuò)展任何功能(查看源碼可以看到public final class SpringRunner extends SpringJUnit4ClassRunner);使用前者,名字簡(jiǎn)短而已
3、將測(cè)試類和測(cè)試方法都修改為public

4、最后修改的測(cè)試類如下所示
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");
}
}
運(yùn)行結(jié)果:

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring啟動(dòng)流程refresh()源碼深入解析
這篇文章主要給大家介紹了關(guān)于Spring啟動(dòng)流程refresh()源碼深入解析的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
SSH框架網(wǎng)上商城項(xiàng)目第28戰(zhàn)之使用Ajax技術(shù)局部更新商品數(shù)量和總價(jià)
這篇文章主要為大家詳細(xì)介紹了SSH框架網(wǎng)上商城項(xiàng)目第28戰(zhàn)之使用Ajax技術(shù)局部更新商品數(shù)量和總價(jià),感興趣的小伙伴們可以參考一下2016-06-06
Jenkins中自動(dòng)化部署Spring?Boot項(xiàng)目的全過程
這篇文章主要介紹了如何使用Jenkins從Git倉(cāng)庫(kù)拉取SpringBoot項(xiàng)目并進(jìn)行自動(dòng)化部署,通過配置Jenkins任務(wù),實(shí)現(xiàn)項(xiàng)目的構(gòu)建、鏡像構(gòu)建和容器運(yùn)行,確保項(xiàng)目在更新時(shí)自動(dòng)部署,需要的朋友可以參考下2025-01-01
Java中定時(shí)器Timer和TimerTask使用方法全解析
這篇文章主要介紹了Java中定時(shí)器Timer和TimerTask使用方法的相關(guān)資料,如何創(chuàng)建定時(shí)任務(wù)、安排任務(wù)執(zhí)行、取消任務(wù)以及實(shí)現(xiàn)任務(wù)的暫停和恢復(fù)功能,通過這些功能,可以靈活地控制任務(wù)的執(zhí)行,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
SpringBoot多數(shù)據(jù)源的兩種實(shí)現(xiàn)方式實(shí)例
最近在項(xiàng)目開發(fā)中,需要為一個(gè)使用MySQL數(shù)據(jù)庫(kù)的SpringBoot項(xiàng)目,新添加一個(gè)PLSQL數(shù)據(jù)庫(kù)數(shù)據(jù)源,下面這篇文章主要給大家介紹了關(guān)于SpringBoot多數(shù)據(jù)源的兩種實(shí)現(xiàn)方式,需要的朋友可以參考下2022-04-04
如何基于java隨機(jī)獲取不重復(fù)數(shù)值
這篇文章主要介紹了如何基于java隨機(jī)獲取不重復(fù)數(shù)值,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
MyBatis二級(jí)緩存實(shí)現(xiàn)關(guān)聯(lián)刷新
本文主要介紹了MyBatis二級(jí)緩存實(shí)現(xiàn)關(guān)聯(lián)刷新,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
springMVC返回復(fù)雜的json格式數(shù)據(jù)方法
下面小編就為大家分享一篇springMVC返回復(fù)雜的json格式數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03

