單元測試不止 Junit

2021-10-02 21:06:37 字數 3372 閱讀 8622

1、mock 測試簡介

2、測試用例演示

1、什麼是 mock 測試

在測試過程中,對於某些不容易構造或者不容易獲取的物件,用乙個虛擬的物件來建立以便測試的測試方法,就是mock 測試在測試過程中,對於某些不容易構造或者不容易獲取的物件,用乙個虛擬的物件來建立以便測試的測試方法,就是* mock 測試*。

2、為什麼使用 mock 測試

3、mockmvc 介紹

基於 restful 風格的 springmvc 的測試,我們可以測試完整的 spring mvc 流程,即從 url 請求到控制器處理,再到檢視渲染都可以測試。

1)mockmvcbuilder

mockmvcbuilder 是用來構造 mockmvc 的構造器,其主要有兩個實現:standalonemockmvcbuilder 和 defaultmockmvcbuilder,對於我們來說直接使用靜態工廠 mockmvcbuilders 建立即可

2)mockmvcbuilders

負責建立 mockmvcbuilder 物件,有兩種建立方式:

standalonesetup(object… controllers):通過引數指定一組控制器,這樣就不需要從上下文獲取了。

3)mockmvc

對於伺服器端的 springmvc 測試支援主入口點。通過 mockmvcbuilder 構造 mockmvcbuilder 由 mockmvcbuilders 建造者的靜態方法去建造。

核心方法:perform(requestbuilder rb) – 執行乙個 requestbuilder 請求,會自動執行 springmvc 的流程並對映到相應的控制器執行處理,該方法的返回值是乙個 resultactions。

4)resultactions

(1)**andexpect:**新增 resultmatcher 驗證規則,驗證控制器執行完成後結果是否正確;

(2)**anddo:**新增 resulthandler 結果處理器,比如除錯時列印結果到控制台;

5)mockmvcrequestbuilders

用來構建請求的,其主要有兩個子類 mockhttpservletrequestbuilder 和 mockmultiparthttpservletrequestbuilder(如檔案上傳使用),即用來 mock 客戶端請求需要的所有資料。

6)mockmvcresultmatchers

(1)用來匹配執行完請求後的結果驗證

(2)如果匹配失敗將丟擲相應的異常

(3)包含了很多驗證 api 方法

7)mockmvcresulthandlers

(1)結果處理器,表示要對結果做點什麼事情

(2)比如此處使用 mockmvcresulthandlers.print() 輸出整個響應結果資訊

8)mvcresult

(1)單元測試執行結果,可以針對執行結果進行自定義驗證邏輯。

1、新增依賴

>

>

org.springframeworkgroupid

>

>

spring-testartifactid

>

>

5.0.7.releaseversion

>

dependency

>

>

>

junitgroupid

>

>

junitartifactid

>

>

4.12version

>

dependency

>

>

>

com.jayway.jsonpathgroupid

>

>

json-pathartifactid

>

>

2.2.0version

>

dependency

>

前兩個 jar 依賴我們都已經接觸過了,對於返回檢視方法的測試這兩個 jar 依賴已經足夠了,第三個 jar 依賴是用於處理返回 json 資料方法的,這裡要明白每個 jar 的具體作用。

2、被測試的方法

(value =

"edititem"

)public string edititem

(integer id, model model)

(value =

"getitem"

)@responsebody

public item getitem

(integer id)

這裡我們提供了兩個方法,乙個是返回檢視的方法,另乙個是返回 json 資料的方法,下面我們會給出測試類,分別對這兩個方法進行測試。

3、測試類:itemmocktest

@runwith

(springjunit4classrunner.

class

)@contextconfiguration

(locations =

"classpath:spring/*.xml"

)public

class

itemmocktest

}

1)返回檢視方法測試

這三句**是我們對結果的期望,最後列印出了結果,說明執行成功,所有期望都達到了,否則會直接報錯。從結果中我們就可以看到這個請求測試的情況。

2、返回 json 資料方法

四、小結

這裡只是用到了 mockmvc 很小一部分知識,更加深入學習會使你養成一種良好編寫單元測試的習慣,這是十分難得的一種好習慣,推薦去看官方文件,然後動手去測試一下,為你編寫的每乙個 controller 方法進行測試,保證他們的可靠性。

Junit 單元測試

測試類package com.lin.music item import android.content.contentresolver import android.content.context import android.database.cursor import android.net....

Junit單元測試

最近在寫一模組的 不能再像原來一樣不認真考慮測試了,因為看看junit如何寫單元測試,這裡作一些筆記。2.關於使用junit的目的。主要有四種 摘自某參考資料。對此,我覺得我是想測試某個類中的某幾個方法,因為覺得這幾個方法比較容易出問題,不過這樣是顯得有些不嚴謹了。其實往往測關鍵方法的時候,其中也都...

Junit單元測試

書寫規範 包 寫在.test包下或者.junit包下 類命名規範 xxtest 測試方法規範 命名規範 test xx 其他規範 返回值為void 空參如何使用junit單元測試?在需要測試的方法上加上 test註解,ctrl 1導包 test public void testgetclient j...