測試驅動開發 TDD 例項 斐波納契數列

2021-09-30 02:19:28 字數 1347 閱讀 9898

斐波納契數列

??? 第乙個測試顯示fib(0)=0. 實現返回乙個常量。

??? public void testfibonacci()

??? int fib( int?n )

??? (我僅僅以testcase類作為**的出發點,因為我們要開發的物件只是乙個函式。)

??? 第二個測試顯示fib(1)=1.

??? public void testfibonacci()

??? 讓這個測試執行有好幾種方法,我選擇把0當作特殊情況對待:

??? int fib( int n )

??? 測試用例中的重複開始令人生厭了,再增加新的測試用例,只會使情況變得再糟。通過使用一張包含輸入和期望輸出值的表來驅動測試,我們可以分離出斷言的公共結構。

??? public void testfibonacci() ,};

?????? for ( int i=0; i < cases.length; i== )

????????? assertequals(cases[i][1], fib(cases[i][0]));

??? }

??? 現在增加乙個測試用例只需六次擊鍵並且不用再增加其他的行。

??? public void testfibonacci() ,,};

?????? for ( int i=0; i < cases.length; i== )

????????? assertequals(cases[i][1], fib(cases[i][0]));

??? }

??? public void testfibonacci() ,,,};

?????? for ( int i=0; i < cases.length; i== )

????????? assertequals(cases[i][1], fib(cases[i][0]));

??? }

??? 終於失敗了,如法炮製(把小的輸入當作特殊情況),我們這樣寫:

??? int fib( int n )

??? 現在我們可以進行一般化了。我們寫2,但真的用意思並不是2,而是1+1.

??? int fib( int n )

??? 第乙個1是fit(n-1)的乙個例項,第二個1是fib(n-2)的乙個例項:???

??? int fib( int n )

??? 整理一下,同樣的結構也適用於fib(2),因此我們加強了第二個條件:

??? int fib( int n )

??? 如此我們得到了整個斐波納契數列,完全**於測試。???

??????????????? -- 以上內容摘自《測試驅動開發》一書的附錄b

斐波納契數列

f 1 0 f 2 1 f n f n 1 f n 2 斐波納契數列決定審美和諧性 800年前,義大利的數學家李奧納多 斐波那契出版了驚世之作 算盤書 在 算盤書 裡,斐波納契提出了著名的 兔子生兔子的問題 有乙個人把一對兔 子放在四面圍著的地方。假定每個月一對兔子生下另外一對。而這新的一對在二個月...

斐波納契數

斐波納契數 指斐波那契 leonardo fibonacci,約1175 約1240 發現的數。在1202年斐波納契的著作 算盤書 裡記載著兩道有趣的題目。坐落在義大利比薩的斐波那契雕像 第乙個題目 有七個老婦人正去往羅馬。她們每個人都拉著七匹騾子,每匹騾子馱七個袋子,每個袋子裡有七個麵包,每個麵包...

斐波納契數列

斐波納契數列又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 此本章通過多種方式實現斐波納契數列 第一種 for 迴圈實現 a,b 0,1 for i in ...