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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

更多精彩文章請關注本人微信公眾號

1、什么是Mock?

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

1.1、 Mockito中文文檔

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

1.2、Mockito基本使用方法簡介

1)、靜態導入會使代碼更簡潔

import static

舉例:

//創建mock對象,mock一個List接口

2)、驗證某些行為

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

3)、如何做一些測試樁

//測試樁

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

2、MockMVC基于RESTful風格的測試

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

2.1、初始化MockMvc對象

@Autowired

2.2、完成一些接口的測試

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

/**

展示結果:

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

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

結果展示:

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

// 期望的結果狀態 200

運行結果:可以看到并沒有返回結果

4)、結合Mockito構建自定義返回結果

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

運行結果

5)、傳參數

@Test

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

@Test

運行結果:

7)、測試Post請求

@Test

3、一些常用API總結

常用的期望:

//使用jsonPaht驗證返回的json中code、message字段的返回值

附帶常用API解釋:

RequestBuilder/MockMvcRequestBuilders:

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

MockHttpServletRequestBuilder:

//:添加頭信息;

MockMultipartHttpServletRequestBuilder

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

ResultActions

//:添加驗證斷言來判斷執行請求后的結果是否是預期的;

ResultMatcher/MockMvcResultMatchers

//:請求的Handler驗證器,比如驗證處理器類型/方法名;此處的Handler其實就是處理請求的控制器;

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。