日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mock 抛出一个异常如何终止_教你使用Mock完成单元测试

發(fā)布時間:2023/12/3 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mock 抛出一个异常如何终止_教你使用Mock完成单元测试 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

更多精彩文章請關(guān)注本人微信公眾號

1、什么是Mock?

mock是在測試過程中,對于一些不容易構(gòu)造/獲取的對象,創(chuàng)建一個mock對象來模擬對象的行為。比如說你需要調(diào)用B服務(wù),可是B服務(wù)還沒有開發(fā)完成,那么你就可以將調(diào)用B服務(wù)的那部分給Mock掉,并編寫你想要的返回結(jié)果。 Mock有很多的實(shí)現(xiàn)框架,例如Mockito、EasyMock、Jmockit、PowerMock、Spock等等,SpringBoot默認(rèn)的Mock框架是Mockito,和junit一樣,只需要依賴spring-boot-starter-test就可以了。本文代碼基于jdk8、junit5、Mockito3

1.1、 Mockito中文文檔

Mockito是mocking框架,它讓你用簡潔的API做測試。而且Mockito簡單易學(xué),它可讀性強(qiáng)和驗(yàn)證語法簡潔。Mockito是GitHub上使用最廣泛的Mock框架,并與JUnit結(jié)合使用.Mockito框架可以創(chuàng)建和配置mock對象.使用Mockito簡化了具有外部依賴的類的測試開發(fā)! Mockito具體使用方法見文檔https://github.com/hehonghui/mockito-doc-zh#0

1.2、Mockito基本使用方法簡介

1)、靜態(tài)導(dǎo)入會使代碼更簡潔

import static

舉例:

//創(chuàng)建mock對象,mock一個List接口

2)、驗(yàn)證某些行為

//你可以mock一個具體的類型,而不僅是接口 一旦mock對象被創(chuàng)建了,mock對象會記住所有的交互。然后你就可能選擇性的驗(yàn)證你感興趣的交互。

3)、如何做一些測試樁

//測試樁

4)、其他使用見上面文檔

2、MockMVC基于RESTful風(fēng)格的測試

對于前后端分離的項(xiàng)目而言,無法直接從前端靜態(tài)代碼中測試接口的正確性,因此可以通過MockMVC來模擬HTTP請求。基于RESTful風(fēng)格的SpringMVC的測試,我們可以測試完整的Spring MVC流程,即從URL請求到控制器處理,再到視圖渲染都可以測試。

2.1、初始化MockMvc對象

@Autowired

2.2、完成一些接口的測試

1)、嘗試測試一個不存在的請求 /user/1

/**

展示結(jié)果:

2)、在Controller中完成 /user/{id}

/** 修改一下測試類:期待返回的結(jié)果是200@Test

結(jié)果展示:

3)、我們可以把結(jié)果打印到控制臺

// 期望的結(jié)果狀態(tài) 200

運(yùn)行結(jié)果:可以看到并沒有返回結(jié)果

4)、結(jié)合Mockito構(gòu)建自定義返回結(jié)果

這里就用到了Mockito的應(yīng)用場景,userService.getById并沒有返回結(jié)果,但是我們的測試并不關(guān)心userService.getById這個方法是否正常,只是在我們的測試中需要用到這個方法,所以我們可以Mock掉UserService的getById方法,自己定義返回的結(jié)果,繼續(xù)我們的測試。@MockBean

運(yùn)行結(jié)果

5)、傳參數(shù)

@Test

6)、期望返回結(jié)果集有兩個元素

@Test

運(yùn)行結(jié)果:

7)、測試Post請求

@Test

3、一些常用API總結(jié)

常用的期望:

//使用jsonPaht驗(yàn)證返回的json中code、message字段的返回值

附帶常用API解釋:

RequestBuilder/MockMvcRequestBuilders:

//根據(jù)uri模板和uri變量值得到一個GET請求方式的MockHttpServletRequestBuilder;

MockHttpServletRequestBuilder:

//:添加頭信息;

MockMultipartHttpServletRequestBuilder

//:指定要上傳的文件;

ResultActions

//:添加驗(yàn)證斷言來判斷執(zhí)行請求后的結(jié)果是否是預(yù)期的;

ResultMatcher/MockMvcResultMatchers

//:請求的Handler驗(yàn)證器,比如驗(yàn)證處理器類型/方法名;此處的Handler其實(shí)就是處理請求的控制器;

總結(jié)

以上是生活随笔為你收集整理的mock 抛出一个异常如何终止_教你使用Mock完成单元测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。