最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年11月04日 17:12:56   作者:timchen525  
這篇文章主要介紹了Springboot 使用具體化類和配置來縮短單元測試時間,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

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

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

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

點(diǎn)擊,Create New Test....

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

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

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

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

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

SpringBoot 簡單的單元測試

一、為什么寫單元測試

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

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

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

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

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

三、編寫單元測試

1、打開測試文件夾:

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

配置的注解:

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

錯誤的情況,如圖所示:

因?yàn)楹皖A(yù)期期望的返回?cái)?shù)據(jù)不一致,所以報(bào)錯:

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解析Java的Jackson庫中Streaming API的使用

    解析Java的Jackson庫中Streaming API的使用

    這篇文章主要介紹了解析Java的Jackson庫中Streaming API的使用,Jackson被用于Java對象和JSON的互相轉(zhuǎn)換,需要的朋友可以參考下
    2016-01-01
  • ThreadLocal?在上下文傳值場景實(shí)踐源碼

    ThreadLocal?在上下文傳值場景實(shí)踐源碼

    這篇文章主要為大家介紹了ThreadLocal在上下文傳值場景下的實(shí)踐源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之平行志愿管理系統(tǒng)的實(shí)現(xiàn)

    Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之平行志愿管理系統(tǒng)的實(shí)現(xiàn)

    這是一個使用了java+Springboot+Maven+mybatis+Vue+Mysql開發(fā)的圖片平行志愿管理系統(tǒng),是一個畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有志愿管理該有的所有功能,感興趣的朋友快來看看吧
    2022-02-02
  • MyBatis的SQL執(zhí)行結(jié)果和客戶端執(zhí)行結(jié)果不一致問題排查

    MyBatis的SQL執(zhí)行結(jié)果和客戶端執(zhí)行結(jié)果不一致問題排查

    本文主要介紹了MyBatis的SQL執(zhí)行結(jié)果和客戶端執(zhí)行結(jié)果不一致問題排查,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • idea?與?maven?使用過程中遇到的問題及解決方案

    idea?與?maven?使用過程中遇到的問題及解決方案

    最近將IDEA 升級到 IntelliJ IDEA 2021.3.2,在將maven項(xiàng)目導(dǎo)入IDEA后,maven build時報(bào)異常,這個問題是IntelliJ IDEA 2021.3.2 不兼容導(dǎo)致的,下面小編給大家?guī)砹薸dea?與?maven?使用過程中遇到的問題及解決方案,感興趣的朋友一起看看吧
    2022-05-05
  • Java 冒泡排序、快速排序?qū)嵗a

    Java 冒泡排序、快速排序?qū)嵗a

    這篇文章主要介紹了Java 冒泡排序、快速排序?qū)嵗a,需要的朋友可以參考下
    2017-05-05
  • java.nio.file.WatchService?實(shí)時監(jiān)控文件變化的示例代碼

    java.nio.file.WatchService?實(shí)時監(jiān)控文件變化的示例代碼

    在?Java?語言中,從?JDK7?開始,新增了java.nio.file.WatchService類,用來實(shí)時監(jiān)控文件的變化,這篇文章主要介紹了java.nio.file.WatchService?實(shí)時監(jiān)控文件變化,需要的朋友可以參考下
    2022-05-05
  • springboot整合minio實(shí)現(xiàn)文件存儲功能

    springboot整合minio實(shí)現(xiàn)文件存儲功能

    MinIO?是一個基于Apache?License?v2.0開源協(xié)議的對象存儲服務(wù),它兼容亞馬遜S3云存儲服務(wù)接口,非常適合于存儲大容量非結(jié)構(gòu)化的數(shù)據(jù),本文給大家介紹了springboot整合minio實(shí)現(xiàn)文件存儲功能,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 詳解Spring DeferredResult異步操作使用場景

    詳解Spring DeferredResult異步操作使用場景

    本文主要介紹了Spring DeferredResult異步操作使用場景,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 計(jì)算機(jī)編程語言發(fā)展史

    計(jì)算機(jī)編程語言發(fā)展史

    這篇文章主要介紹了Java計(jì)算機(jī)編程語言發(fā)展史,編程語言?可以簡單的理解為一種計(jì)算機(jī)和人都能識別的語言。一種計(jì)算機(jī)語言讓程序員能夠準(zhǔn)確地定義計(jì)算機(jī)所需要使用的數(shù)據(jù),并精確地定義在不同情況下所應(yīng)當(dāng)采取的行動,下面詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-01-01

最新評論

德昌县| 绥芬河市| 成都市| 衡水市| 灵台县| 方正县| 军事| 临夏县| 永丰县| 温宿县| 全南县| 察隅县| 井冈山市| 太原市| 揭东县| 镇江市| 文登市| 五寨县| 仙居县| 夏津县| 太白县| 抚顺县| 多伦县| 饶阳县| 鄂温| 东兰县| 宜春市| 绥宁县| 新安县| 科技| 鄂托克旗| 二连浩特市| 三门县| 石景山区| 临汾市| 西盟| 博乐市| 宽城| 江都市| 蚌埠市| 仁布县|