1. 程式人生 > >驅動模組(driver) 和樁模組(stub)

驅動模組(driver) 和樁模組(stub)

傳統的單元測試包括了驅動模組(driver) 和樁模組(stub)。驅動模組的目的很單純,就是為了訪問類庫的屬性和方法,來檢測類庫的功能是否正確;

驅動模組

驅動模組是用來模擬被測試模組的上一級模組,相當於被測模組的主程式。它接收資料,將相關資料傳送給被測模組,啟用被測模組,並打印出相應的結果。

驅動模組(Driver)可以通過模擬一系列使用者操作行為,比如選擇使用者介面上的某一個選項或者按下某個按鈕等,自動呼叫被測試模組中的函式。驅動模組(Driver)設定,使對模組的測試不必與使用者介面真正互動。

樁模組

樁模組是指模擬被測試的模組所呼叫的模組,而不是軟體產品的組成的部分。主模組作為驅動模組

,與之直接相連的模組用樁模組代替。在整合測試前要為被測模組編制一些模擬其下級模組功能的“替身”模組,以代替被測模組的介面,接受或傳遞被測模組的資料,這些專供測試用的“假”模組稱為被測模組的樁模組。

如果被測試的單元模組需要呼叫其他模組中的功能或者函式(method),我們就應該設計一個和被呼叫模組名稱相同的樁模組來模擬被呼叫模組。這個樁模組本身不執行任何功能僅在被呼叫時返回靜態值來模擬被呼叫模組的行為。舉例說明:如果被測試單元中需要呼叫另一個模組customer的函式 getCustomerAddress(customerID: Integer),這個函式應該查詢資料庫後返回某一個客戶的地址。我們設計的同名樁模組(Stub)中的同名函式並沒有真正對資料庫進行查詢而僅模擬了這個行為,直接返回了一個靜態的地址例如"123 Newton Street"。樁模組的設定使得

單元測試的進行成為一個相對獨立且簡單的過程。


總結:

樁模組的使命除了使得程式能夠編譯通過之外,還需要模擬返回被代替的模組的各種可能返回值(什麼時候返回什麼值需要根據測試用例的情況來決定)。

驅動模組的使命就是根據測試用例的設計去呼叫被測試模組,並且判斷被測試模組的返回值是否與測試用例的預期結果相符


相關推薦

驅動模組driver 模組stub

傳統的單元測試包括了驅動模組(driver) 和樁模組(stub)。驅動模組的目的很單純,就是為了訪問類庫的屬性和方法,來檢測類庫的功能是否正確; 驅動模組 驅動模組是用來模擬被測試模組的上一級模組

robotframework使用python自定義“關鍵字”的兩種方法:匯入庫LIB匯入模組py檔案

1、匯入庫,需要把檔案做成包的形式 常見放置在,python主目錄的  \Lib\site-packages下 __init__.py 好處是:適合大規模的開發,包有多人負責,分模組開發,無限擴充套件檔案數量 缺點是:統一歸檔相對麻煩 2、匯入檔案,直

python多執行緒3---生產者與消費者執行緒通訊Queue模組

Queue模組可以進行執行緒通訊。比如生產者產生貨物,貨物放入佇列,通過通訊,消費者取得貨物。Queue被稱為通用佇列模組 queue(size)產生一個佇列,佇列模式有3種,針對這三種佇列分別有三個建構函式: 1 FIFO佇列先進先出:class Queu

linux裝置驅動第二篇:構造執行模組

上一篇介紹了linux驅動的概念,以及linux下裝置驅動的基本分類情況及其各個分類的依據和差異,這一篇我們來描述如何寫一個類似hello world的簡單測試驅動程式。而這個驅動的唯一功能就是輸出hello world。 在編寫具體的例項之前,我們先來了解下linux核心

抽象類abstract class接口interface有什麽異同?

否則 繼承 默認 strong 什麽 成員 -s 實例 abstract 相同點: 1.抽象類和接口都不能被實例化,但可以定義抽象類和接口類型的引用。 2.一個類如果繼承了抽象類和接口,必須要對其中的抽象方法全部實現。(接口中方法默認的是public abstract修飾的

同步Synchronous異步Asynchronous

就會 一個 方法調用 這一 開始 訂單 必須 通知 下單 同步和異步通常用來形容一次方法調用。同步方法調用一旦開始,調用者必須等到方法調用返回後,才能繼續後續的行為。異步方法調用更像一個消息的傳遞,一旦開始,方法調用就會立即返回,調用者就可以繼續後續的操作。而異步方法通常會

java String長度與varchar長度匹配理解字符字節長度理解

轉化 筆記 指定 是我 有一個 ati 法語 itl 情況 java String長度與varchar長度匹配理解(字符和字節長度理解) string中的length()長度,返回的是char的數量,每個char可以存儲世界上任何類型的文字和字符,一個char 而

C語言中存儲類別又分為四類:自動auto、靜態static、寄存器的register外部的extern

字符變量 修飾 例如 register ext 進行 適合 sta -- 除法運算中註意: 如果相除的兩個數都是整數的話,則結果也為整數,小數部分省略,如8/3 = 2;而兩數中有一個為小數,結果則為小數,如:9.0/2 = 4.500000。 取余運算中註意: 該運算只適

SpringMVC中文件的上傳上傳到服務器下載問題--------下載

cat exc stream log trac close pri page fin 一、建立一個簡單的jsp頁面。 我們在建好的jsp的頁面中加入一個超鏈接:<a href="${pageContext.request.contextPath}/down

maven可選依賴Optional Dependencies依賴排除Dependency Exclusions

許可 mave manage spa 兩個 傳遞 方式 mis ont 我們知道,maven的依賴關系是有傳遞性的。如:A-->B,B-->C。但有時候,項目A可能不是必需依賴C,因此需要在項目A中排除對A的依賴。在maven的依賴管理中,有兩種方式可以對依賴關

LeetCode 380. Insert Delete GetRandom O(1) 插入刪除獲得隨機數 常數時間

delet size 利用 eat www. random called ret runtime Design a data structure that supports all following operations in average O(1) time.

UI自動化測試瀏覽器操作及對元素的定位方法xpath定位css定位詳解

cli 刷新 ota api enter 版本 ror apache 窗口 Selenium下的Webdriver工具支持FireFox(geckodriver)、 IE(InternetExplorerDriver)、Chrome(ChromeDriver)、 Opera

Linux運維之道之admin1.4權限歸屬,LADP認證

達內 linux 運維admin admin1.4權限和歸屬:基本權限:基本權限的類別:訪問方式(權限):---讀取:允許查看內容--read (r權限:能夠ls瀏覽此目錄內容)---寫入:允許修改內容--write (w權限:能夠執行rm/mv/cp/mkdir/touch等更

轉發forward重定向redirect的區別

border 新的 狀態 rec nbsp url req red 完成 轉發與重定向的主要區別 轉發 重定向 轉發是服務器行為 重定向是客戶端行為 轉發瀏覽器url不改變 重定向瀏覽器url改變 轉發request請求數據不丟失 重定向request請

發個無聊時寫的俄羅斯方塊分為SDLQt兩個版本

app deb fcm cnn 無聊 線程 dac tutorial spi 6213-ChineseZodiac(map) 多線程問題 【CF472G】【XSY2112】DesignTutorial壓位 大家都開始C++0x了,我也來湊熱鬧,今天的主題是《調侃rvalue

淺談淺克隆shallow clone 深克隆deep clone

turn ont row 控制臺 cep test 寫入 main supported 區別就在於是否對對象中的引用變量所指向的對象進行拷貝。 1.淺克隆/淺復制/淺拷貝   淺拷貝是指在拷貝對象時,對於基本數據類型的變量會重新復制一份,而對於引用類型的變量只是對引用進行拷

微服務架構 SpringCloudEureka服務註冊服務發現基礎篇

col false -c conf gis 功能 pri desc sch 一:Eureka簡介 Eureka是Spring Cloud Netflix的一個子模塊,也是核心模塊之一。用於雲端服務發現,一個基於REST的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移

表單提交同步提交AJAX提交異步提交

接收 為我 spa 提交 method 提交按鈕 技術 分享 可能 表單提交(同步提交) HTML文件: PHP文件: 這樣就能接收到HTML裏輸入的內容,註意: FORM表頭method為POST,PHP文件獲取的方法就是$_POST,method為GET,PH

Linux後臺進程管理以及ctrl+z掛起、ctrl+c中斷、ctrl+退出ctrl+dEOF的區別(轉)

列表 art 信息 csdn 而是 png detail tps 後臺 一、後臺進程管理命令 fg、bg、jobs、&、ctrl + z、ctrl + c、ctrl + \、ctrl + d1、 &加在一個命令的最後,可以把這個命令放到後臺執行 ,如fire

C# 編程中的堆棧Stack隊列Queue

的區別 bottom seq 序表 gin 數組 src 優秀 順序隊列 一、什麽是堆?(Heap) 堆是無序的,是一片不連續的內存域,由用戶自己來控制和釋放,如果用戶自己不釋放的話,當內存達到一定的特定值時,通過垃圾回收器(GC)來回收。 是程序運行期