Mock(一)

  1. Mock定義
    mock是在測試過程中,對於一些不容易構造/獲取的對象,創建一個mock對象來模擬對象的行爲

  2. 使用mock
    在做單元測試過程中,經常會有以下的場景:

class A 依賴 class B

class B 依賴 class Cclass D

class C 依賴 ...

class D 依賴 ...

1.被測對象依賴的對象構造複雜 我們想對class A進行單元測試,需要構造大量的class B、C、D等依賴對象,他們的構造過程複雜(體現在構造步驟多、耗時較長),這時我們可以利用mock去構造虛擬的class
B、C、D對象用於class A的測試,因爲我們只是想測試class A的行爲是否符合預期,我們並不需要測試依賴對象。

2.被測單元依賴的模塊尚未開發完成,而被測對象需要依賴模塊的返回值進行測試:
----- 比如service層的代碼中,包含對dao層的調用,但dao層代碼尚未開發
----- 比如web的前端依賴後端接口獲取數據進行聯調測試,但後端接口並未開發完成

  • 哪些時機和場合需要使用mock

1.單元測試/接口測試中測試對象依賴其他對象,這些對象的構造複雜、耗時或者根本無法構造(未交付)
2.我們只測試對象內部邏輯的質量,不關心依賴對象的邏輯正確性和穩定性

4.mock分類
單元測試 基於代碼層面的mock
接口測試 基於網絡接口層的mock
5.mock原理
http 基於代理或host的方式
rcp
6.單元測試mock的框架
基於JAVA

  • EasyMock
  • Mockito
  • powerMockito

7.Mock方案
搭建服務
自定義URL與替換數據規則
通過代理,host解析等方式改變網絡訪問目標
無需修改代碼即可直接使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章