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...