使用moco單元測試

在項目中,除了查詢數據庫,還要調用外部的服務,這這時候咱們在寫單元測試的時候,會考慮怎麼覆蓋着一塊代碼:前端

1.封裝一個方法,而後mock這個方法。
2.直接配置好調用的服務,測試的時候調用真實存在的服務。
3.起一個服務,mock這個調用的這個服務。git

第一種方法雖然mock了這個方法,可是沒有覆蓋到調用遠端的這個服務處理過程,好比序列化,contentType等等。
第二種方法過於依賴已經外部的服務,測試的失敗的機率也是比較高的,也有點集成的意思,會把單元測試作的太重,而且很差維護。
第三種方法,能夠配置協議啓動,當方法調用的時候,實際調用咱們mock的服務,也想過開發一個mock服務,咱們配置須要調用的服務,返回格式內容,感受這種適合給前端接口定義的時候用,不適合後端開發。github

發現前人開發了moco(https://github.com/dreamhead/moco) 來實現第三種方法來作單元測試。有幾種使用Moco的方法。一種是API,您能夠在單元測試中使用它。另外一個是獨立運行Moco。當前,須要將全部配置都放在JSON文件中。數據庫

若是是maven項目,那麼加入以下的依賴:
moco
而後在junit的單元測試中,加入moco runner的服務,這裏我使用做者git中的test描述,須要寫一個配置文件,這裏的request是請求的配置,response能夠配置返回的contentType類型,好比text,json,file等經常使用的:
df
而後使用MocoJunitRunner.jsonHttpRunner(12306, "src/test/resources/foo.json")配置端口和配置文件:

這樣就能夠單元測試啦!json

相關文章
相關標籤/搜索