溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringBoot高版本修改為低版本時(shí)測(cè)試類報(bào)錯(cuò)的解決方案是怎樣的

發(fā)布時(shí)間:2021-09-24 16:14:58 來(lái)源:億速云 閱讀:240 作者:柒染 欄目:開(kāi)發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)SpringBoot高版本修改為低版本時(shí)測(cè)試類報(bào)錯(cuò)的解決方案是怎樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

高版本改低版本時(shí)測(cè)試類報(bào)錯(cuò)

有時(shí)在使用idea通過(guò)Spring Initailizr創(chuàng)建項(xiàng)目時(shí),默認(rèn)只能創(chuàng)建最近的版本的SpringBoot項(xiàng)目。

這是如果想要換成版本,就可以在項(xiàng)目創(chuàng)建好了之后,在pom文件中直接將版本修改過(guò)來(lái)。

如下所示

比如在創(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è)問(wèn)題,那就是——在高版本時(shí),默認(rèn)的測(cè)試類是沒(méi)問(wè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");
    }
}

但是在更換成低版本之后,測(cè)試類將會(huì)報(bào)錯(cuò),如下所示,無(wú)法導(dǎo)入在2.2.2高版本中使用的org.junit.jupiter.api.Test類

SpringBoot高版本修改為低版本時(shí)測(cè)試類報(bào)錯(cuò)的解決方案是怎樣的

此時(shí)可以做如下修改

1、刪除高版本默認(rèn)導(dǎo)入的org.junit.jupiter.api.Test類

重新導(dǎo)入org.junit.Test類

SpringBoot高版本修改為低版本時(shí)測(cè)試類報(bào)錯(cuò)的解決方案是怎樣的

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

如下圖:

SpringBoot高版本修改為低版本時(shí)測(cè)試類報(bào)錯(cuò)的解決方案是怎樣的

注:

  • 通過(guò)@RunWith注解,更改測(cè)試運(yùn)行器,更改使用的測(cè)試類為SpringRunner.class,使之適應(yīng)spring。

  • @RunWith(SpringRunner.class)使用了Spring的SpringRunner,以便在測(cè)試開(kāi)始的時(shí)候自動(dòng)創(chuàng)建Spring的應(yīng)用上下文。其他的想創(chuàng)建spring容器的話,就得子啊web.xml配置classloder。 注解了@RunWith就可以直接使用spring容器,直接使用@Test注解,不用啟動(dòng)spring容器

  • SpringRunner 繼承了SpringJUnit4ClassRunner,沒(méi)有擴(kuò)展任何功能(查看源碼可以看到public final class SpringRunner extends SpringJUnit4ClassRunner);使用前者,名字簡(jiǎn)短而已

3、將測(cè)試類和測(cè)試方法都修改為public

SpringBoot高版本修改為低版本時(shí)測(cè)試類報(bào)錯(cuò)的解決方案是怎樣的

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é)果:

SpringBoot高版本修改為低版本時(shí)測(cè)試類報(bào)錯(cuò)的解決方案是怎樣的

上述就是小編為大家分享的SpringBoot高版本修改為低版本時(shí)測(cè)試類報(bào)錯(cuò)的解決方案是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI