SpringBoot高版本修改為低版本時測試類報錯的解決方案
高版本改低版本時測試類報錯
有時在使用idea通過Spring Initailizr創(chuàng)建項目時,默認(rèn)只能創(chuàng)建最近的版本的SpringBoot項目。
這是如果想要換成版本,就可以在項目創(chuàng)建好了之后,在pom文件中直接將版本修改過來。
如下所示
比如在創(chuàng)建項目時默認(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>
這時可能會遇到一個問題,那就是——在高版本時,默認(rèn)的測試類是沒問題可以使用的
import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class SpringBootTestWebApplicationTests { @Test void contextLoads() { System.out.println("hello world"); } }
但是在更換成低版本之后,測試類將會報錯,如下所示,無法導(dǎo)入在2.2.2高版本中使用的org.junit.jupiter.api.Test類
此時可以做如下修改
1、刪除高版本默認(rèn)導(dǎo)入的org.junit.jupiter.api.Test類
重新導(dǎo)入org.junit.Test類
2、在類上添加注釋@RunWith(SpringRunner.class)
如下圖:
注:
- 通過@RunWith注解,更改測試運行器,更改使用的測試類為SpringRunner.class,使之適應(yīng)spring。
- @RunWith(SpringRunner.class)使用了Spring的SpringRunner,以便在測試開始的時候自動創(chuàng)建Spring的應(yīng)用上下文。其他的想創(chuàng)建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"); } }
運行結(jié)果:
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloud_Sleuth分布式鏈路請求跟蹤的示例代碼
Spring Cloud Sleuth是一款針對Spring Cloud的分布式跟蹤工具,本文通過實例代碼介紹了SpringCloud_Sleuth分布式鏈路請求跟蹤,感興趣的朋友跟隨小編一起看看吧2023-02-02spring為java.util.Properties類型的屬性進行賦值過程解析
這篇文章主要介紹了spring為java.util.Properties類型的屬性進行賦值過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01Spring boot 總結(jié)之跨域處理cors的方法
本篇文章主要介紹了Spring boot 總結(jié)之跨域處理cors的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02使用java + selenium + OpenCV破解騰訊防水墻滑動驗證碼功能
這篇文章主要介紹了使用java + selenium + OpenCV破解騰訊防水墻滑動驗證碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11