mockito是mock里比較常用的,可以模擬一個類, 解決依賴過多問題.
1. 團隊可以并行工作
有了Mock,前后端人員只需要定義好接口文檔就可以開始并行工作,互不影響,只在最后的聯調階段往來密切;后端與后端之間如果有接口耦合,也同樣能被Mock解決;測試過程中如果遇到依賴接口沒有準備好,同樣可以借助Mock;不會出現一個團隊等待另一個團隊的情況。這樣的話,開發自測階段就可以及早開展,從而發現缺陷的時機也提前了,有利于整個產品質量以及進度的保證。
2. 開啟TDD模式,即測試驅動開發
單元測試是TDD實現的基石,而TDD經常會碰到協同模塊尚未開發完成的情況,但是有了mock,這些一切都不是問題。當接口定義好后,測試人員就可以創建一個Mock,把接口添加到自動化測試環境,提前創建測試。
3. 可以模擬那些無法訪問的資源
比如說,你需要調用一個“墻”外的資源來方便自己調試,就可以自己Mock一個。
4. 隔離系統
假如我們需要調用一個post請求,為了獲得某個響應,來看當前系統是否能正確處理返回的“響應”,但是這個post請求會造成數據庫中數據的污染,那么就可以充分利用Mock,構造一個虛擬的post請求,我們給他指定返回就好了。
5. 可以用來演示
假如我們需要創建一個演示程序,并且做了簡單的UI,那么在完全沒有開發后端服務的情況下,也可以進行演示。說到演示了,假如你已經做好了一個系統,并且需要給客戶進行演示,但是里面有些真實數據并不想讓用戶看到,那么同樣,你可以用Mock接口把這些敏感信息接口全部替換。
6. 測試覆蓋度
假如有一個接口,有100個不同類型的返回,我們需要測試它在不同返回下,系統是否能夠正常響應,但是有些返回在正常情況下基本不會發生,難道你要千方百計地給系統做各種手腳讓他返回以便測試嗎?比如,我們需要測試在當接口發生500錯誤的時候,app是否崩潰,別告訴我你一定要給服務端代碼做些手腳讓他返回500 。。。而使用mock,這一切就都好辦了,想要什么返回就模擬什么返回,媽媽再也不用擔心我的測試覆蓋度了!