Springboot 使用具體化類和配置來(lái)縮短單元測(cè)試時(shí)間
具體化類和配置來(lái)縮短單元測(cè)試時(shí)間
我們?cè)趯?xiě)完業(yè)務(wù)代碼之后,都需要編寫(xiě)測(cè)試用例來(lái)驗(yàn)證代碼邏輯是否正確,這樣不僅方便自己后期檢查,也方便后面接手的人快速測(cè)試我們的代碼。
編寫(xiě)測(cè)試用例時(shí),我們可以通過(guò)如下快捷鍵:ctrl+shift+T,然后會(huì)出現(xiàn)如下提示:
點(diǎn)擊,Create New Test....
通常,只是幫助我們生成一個(gè)包下對(duì)應(yīng)的類,以及方法名,然后我們?cè)陬惿厦妫?jiǎn)單粗暴的添加:
@RunWith(SpringRunner.class) @SpringBootTest public class SquirrelConfigTest{ @Test }
注意:上述注解會(huì)將整個(gè)項(xiàng)目的類以及配置文件都加載進(jìn)來(lái),這樣每執(zhí)行一次測(cè)試用例,如果項(xiàng)目比較龐大,耗時(shí)就會(huì)很長(zhǎng)。因此,我們可以指定相應(yīng)要加載的類和配置文件,編寫(xiě)如下:
@RunWith(SpringRunner.class) @EnableAutoConfiguration @SpringBootTest(classes = {Test.class, Test2.class}) public class SquirrelConfigTest { }
很明顯上述耗時(shí)會(huì)短很多。
SpringBoot 簡(jiǎn)單的單元測(cè)試
一、為什么寫(xiě)單元測(cè)試
單元測(cè)試是開(kāi)發(fā)者編寫(xiě)的一小段代碼,用于檢驗(yàn)?zāi)繕?biāo)代碼的一個(gè)很小的、很明確的功能是否正確。通常而言,一個(gè)單元測(cè)試用于判斷某個(gè)特定條件或特定場(chǎng)景下某個(gè)特定函數(shù)的行為。例如,用戶可能把一個(gè)很大的值放入一個(gè)有序List中,然后確認(rèn)該值出現(xiàn)在List 的尾部。或者,用戶可能會(huì)從字符串中刪除匹配某種模式的字符,然后確認(rèn)字符串確實(shí)不再包含這些字符了。
單元測(cè)試是由程序員自己來(lái)完成,最終受益的也是程序員自己??梢赃@么說(shuō),程序員有責(zé)任編寫(xiě)功能代碼,同時(shí)也就有責(zé)任為自己的代碼編寫(xiě)單元測(cè)試。執(zhí)行單元測(cè)試,就是為了證明這段代碼的行為和我們期望的一致。
在一般情況下,一個(gè)功能模塊往往會(huì)調(diào)用其他功能模塊完成某項(xiàng)功能,如業(yè)務(wù)層的業(yè)務(wù)類可能會(huì)調(diào)用多個(gè)DAO完成某項(xiàng)業(yè)務(wù)。對(duì)某個(gè)功能模塊進(jìn)行單元測(cè)試時(shí),我們希望屏蔽對(duì)外在功能模塊的依賴,以便將焦點(diǎn)放在目標(biāo)功能模塊的測(cè)試上。這時(shí)模擬對(duì)象將是最有力的工具,它根據(jù)外在模塊的接口模擬特定操作行為,這樣單元測(cè)試就可以在假設(shè)關(guān)聯(lián)模塊正確工作的情況下驗(yàn)證本模塊邏輯的正確性了。
二、簡(jiǎn)單的spring boot單元測(cè)試的實(shí)現(xiàn)
1、首先寫(xiě)一個(gè)簡(jiǎn)單的接口,如下圖所示:
三、編寫(xiě)單元測(cè)試
1、打開(kāi)測(cè)試文件夾:
2、具體代碼實(shí)現(xiàn)
配置的注解:
3、正確的情況下,如圖所示:
錯(cuò)誤的情況,如圖所示:
因?yàn)楹皖A(yù)期期望的返回?cái)?shù)據(jù)不一致,所以報(bào)錯(cuò):
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
IDEA巧用Postfix Completion讓碼速起飛(小技巧)
這篇文章主要介紹了IDEA巧用Postfix Completion讓碼速起飛,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08HttpServletRequest的getParameter()的坑及解決
這篇文章主要介紹了HttpServletRequest的getParameter()的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Java OpenCV實(shí)現(xiàn)人臉識(shí)別過(guò)程詳解
這篇文章主要介紹了Java OpenCV實(shí)現(xiàn)人臉識(shí)別過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08通過(guò)實(shí)例解析spring環(huán)繞通知原理及用法
這篇文章主要介紹了通過(guò)實(shí)例解析spring環(huán)繞通知原理及用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10java應(yīng)用占用內(nèi)存過(guò)高排查的解決方案
這篇文章主要介紹了java應(yīng)用占用內(nèi)存過(guò)高排查的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03WebUploader實(shí)現(xiàn)圖片上傳功能
這篇文章主要為大家詳細(xì)介紹了WebUploader實(shí)現(xiàn)圖片上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03java利用htmlparser獲取html中想要的代碼具體實(shí)現(xiàn)
這篇文章主要介紹了java利用htmlparser獲取html中想要的代碼具體實(shí)現(xiàn),需要的朋友可以參考下2014-02-02