【刷題】麪筋-測開-驅動模塊和樁模塊
傳統的單元測試包括了驅動模塊(driver) 和樁模塊(stub)。
驅動模塊
-
概述
- 在大多數場合稱爲"主程序",它接收測試數據並將這些數據傳遞到被測試模塊.
- 單元測試一個函數單元時,被測單元自己是不能獨立運行的,須要爲其傳送數據,爲此寫驅動
- 驅動模塊是用來模擬被測試模塊的上一級模塊,至關於被測模塊的主程序。
- 它接收數據,將相關數據傳送給被測模塊,啓用被測模塊,並打印出相應的結果。
- 驅動模塊(Driver)能夠經過模擬一系列用戶操做行爲,好比選擇用戶界面上的某一個選項或者按下某個按鈕等,自動調用被測試模塊中的函數。
- 驅動模塊(Driver)設置,使對模塊的測試沒必要與用戶界面真正交互。
-
驅動模塊主要完成如下事情:
- 一、接受測試輸入;
- 二、對輸入進行判斷;
- 三、將輸入傳給被測單元,驅動被測單元執行;
- 四、接受被測單元執行結果,並對結果進行判斷;
- 五、將判斷結果做爲用例執行結果輸出測試報告。
樁模塊
-
概述
- 樁模塊是指模擬被測試的模塊所調用的模塊,而不是軟件產品的組成的部分。
- 主模塊做爲驅動模塊,與之直接相連的模塊用樁模塊代替。
- 在集成測試前要爲被測模塊編制一些模擬其下級模塊功能的「替身」模塊,以代替被測模塊的接口,接受或傳遞被測模塊的數據,這些專供測試用的「假」模塊稱爲被測模塊的樁模塊。
- 若是被測試的單元模塊須要調用其餘模塊中的功能或者函數(method),咱們就應該設計一個和被調用模塊名稱相同的樁模塊來模擬被調用模塊。這個樁模塊自己不執行任何功能僅在被調用時返回靜態值來模擬被調用模塊的行爲。
-
舉例說明:
- 若是被測試單元中須要調用另外一個模塊customer的函數 getCustomerAddress(customerID: Integer),這個函數應該查詢數據庫後返回某一個客戶的地址。
- 咱們設計的同名樁模塊(Stub)中的同名函數並無真正對數據庫進行查詢而僅模擬了這個行爲,直接返回了一個靜態的地址例如"123 Newton Street"。樁模塊的設置使得單元測試的進行成爲一個相對獨立且簡單的過程。
總結
- 樁模塊的使命除了使得程序可以編譯經過以外,還須要模擬返回被代替的模塊的各類可能返回值(何時返回什麼值須要根據測試用例的狀況來決定)。
- 驅動模塊的使命就是根據測試用例的設計去調用被測試模塊,而且判斷被測試模塊的返回值是否與測試用例的預期結果相符
END
歡迎關注本站公眾號,獲取更多信息