溫馨提示×

溫馨提示×

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

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

Springboot如何使用具體化類和配置來縮短單元測試時間

發(fā)布時間:2022-03-03 14:11:38 來源:億速云 閱讀:175 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Springboot如何使用具體化類和配置來縮短單元測試時間,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體化類和配置來縮短單元測試時間

我們在寫完業(yè)務(wù)代碼之后,都需要編寫測試用例來驗證代碼邏輯是否正確,這樣不僅方便自己后期檢查,也方便后面接手的人快速測試我們的代碼。

編寫測試用例時,我們可以通過如下快捷鍵:ctrl+shift+T,然后會出現(xiàn)如下提示:

Springboot如何使用具體化類和配置來縮短單元測試時間

點擊,Create New Test....

通常,只是幫助我們生成一個包下對應(yīng)的類,以及方法名,然后我們在類上面,簡單粗暴的添加:

@RunWith(SpringRunner.class)
@SpringBootTest
public class SquirrelConfigTest{
@Test
}

注意:上述注解會將整個項目的類以及配置文件都加載進(jìn)來,這樣每執(zhí)行一次測試用例,如果項目比較龐大,耗時就會很長。因此,我們可以指定相應(yīng)要加載的類和配置文件,編寫如下:

@RunWith(SpringRunner.class)
@EnableAutoConfiguration
@SpringBootTest(classes = {Test.class, Test2.class})
public class SquirrelConfigTest {
}

很明顯上述耗時會短很多。

SpringBoot 簡單的單元測試

一、為什么寫單元測試

單元測試是開發(fā)者編寫的一小段代碼,用于檢驗?zāi)繕?biāo)代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試用于判斷某個特定條件或特定場景下某個特定函數(shù)的行為。例如,用戶可能把一個很大的值放入一個有序List中,然后確認(rèn)該值出現(xiàn)在List 的尾部。或者,用戶可能會從字符串中刪除匹配某種模式的字符,然后確認(rèn)字符串確實不再包含這些字符了。

單元測試是由程序員自己來完成,最終受益的也是程序員自己??梢赃@么說,程序員有責(zé)任編寫功能代碼,同時也就有責(zé)任為自己的代碼編寫單元測試。執(zhí)行單元測試,就是為了證明這段代碼的行為和我們期望的一致。

在一般情況下,一個功能模塊往往會調(diào)用其他功能模塊完成某項功能,如業(yè)務(wù)層的業(yè)務(wù)類可能會調(diào)用多個DAO完成某項業(yè)務(wù)。對某個功能模塊進(jìn)行單元測試時,我們希望屏蔽對外在功能模塊的依賴,以便將焦點放在目標(biāo)功能模塊的測試上。這時模擬對象將是最有力的工具,它根據(jù)外在模塊的接口模擬特定操作行為,這樣單元測試就可以在假設(shè)關(guān)聯(lián)模塊正確工作的情況下驗證本模塊邏輯的正確性了。

二、簡單的spring boot單元測試的實現(xiàn)

1、首先寫一個簡單的接口,如下圖所示:

Springboot如何使用具體化類和配置來縮短單元測試時間

三、編寫單元測試

1、打開測試文件夾:

Springboot如何使用具體化類和配置來縮短單元測試時間

2、具體代碼實現(xiàn)

配置的注解:

Springboot如何使用具體化類和配置來縮短單元測試時間

Springboot如何使用具體化類和配置來縮短單元測試時間

3、正確的情況下,如圖所示:

Springboot如何使用具體化類和配置來縮短單元測試時間

Springboot如何使用具體化類和配置來縮短單元測試時間

錯誤的情況,如圖所示:

因為和預(yù)期期望的返回數(shù)據(jù)不一致,所以報錯:

Springboot如何使用具體化類和配置來縮短單元測試時間

Springboot如何使用具體化類和配置來縮短單元測試時間

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Springboot如何使用具體化類和配置來縮短單元測試時間”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

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

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

AI