測試驅動開發的讀書筆記(三)

2022-07-31 16:54:13 字數 1390 閱讀 9540

mock object(模擬物件):

mock的特點

1、提供和被模擬物件相同的介面

2、會檢查每個呼叫的上下文

以下幾種情況可以考慮建立mock

1、當被模擬的物件提供不確定的結果時(例如:當前時間或當前溫度)

2、很難建立或重現的狀態(例如:網路錯誤)

3、很慢(例如:資料庫,需要在測試前初始化)

4、還不存在或者也許會改變的行為

5、為了測試想提過一些額外的資訊和方法時

當測試乙個依賴於昂貴且複雜的資源的物件時,可嘗試建立乙個這些資源的模擬版本。

mock物件鼓勵你仔細思考各個物件的可見性,減少設計中的耦合,也給專案增加風險:模擬物件需要和現實物件的行為一樣,因而是需要對模擬物件的行為進行測試的。

fixture(固定設施):

是指多個測試需要的通用物件(也被稱為腳手架)

例子:emptyrectangletest

public void testempty()

rectangle empty = new rectangle(0,0,0,0);

asserttrue(empty.isempty());

public void testwidth()

rectangle empty = new rectangle(0,0,0,0);

asserttrue(0.0, empty.getwidth(), 0.0);

改成emptyrectangletest

private rectangle empty;

public void setup()

rectangle empty = new rectangle(0,0,0,0);

public void testempty()

asserttrue(empty.isempty());

public void testwidth()

asserttrue(0.0, empty.getwidth(), 0.0);

問題:

裡面提到如何測試不大可能被呼叫到的錯誤**,一種是單元測試,需要巢狀到**中;另一種是不是可以考慮通過效能測試來觸發(估計觸發也很有限)

觀點記錄:

「希望使用白盒測試不是一種測試問題,而是一種設計問題。每當我想使用乙個變數作為檢驗**是否執行正確的一種方法時,我就會獲得了改進設計的機會」

測試驅動開發的讀書筆記(一):

測試驅動開發的讀書筆記(二):

測試驅動開發的讀書筆記(三):

測試驅動開發的讀書筆記(四):

測試驅動開發的讀書筆記(五):

《測試驅動開發》 讀書筆記

測試驅動開發 讀書筆記 前言 測試驅動開發 tdd 以測試作為開發過程的中心,要求在編寫任何產品 之前,首先編寫用於定義產品 行為的測試,而編寫的產品 又要以使測試通過為目標。測試驅動開發要求測試可以完全自動化地執行,在對 進行重構前後必須執行測試。這是一種革命性的開發方法,能夠造就簡單 清晰 高質...

《測試驅動開發》讀書筆記

讀完本書的實踐 1 從簡單的例子開始,寫自動測試程式 2 重構,每次增加乙個新的設計構思 3 開發節奏 不可執行 可執行 重構 我們應該測試什麼?1 在開始寫測試之前,寫乙個包含你認為必須要編寫測試的清單,把你所知道需要實現的每種操作的範例都記錄在清單上 2 對於那些目前還不存在的操作,將其記錄到清...

《測試驅動開發的藝術》讀書筆記

tdd通過邊測試邊編寫 然後重構來防止重構所引起的錯誤 通過自動化測試和持續整合工具,隨時保持可以發布 tdd第一步 1.需求分解 2.將需求轉化成測試 3.寫乙個失敗的測試 4.逐步通過測試,再寫乙個測試 5.開始消除重複 由於這個時候有測試在了,所以不用擔心更改會引起整合錯誤 互動測試,並不驗證...