深度解讀 - TDD(測試驅動開發)(8)
發表于:2017-03-31來源:jianshu作者:SeabornLee點擊數:
標簽:tdd
這些方法寫單元測試了呢? 當然可以, 它們的輸入和輸出都是很明確的嘛。 等等,你可能會說,不是測試驅動設計嗎?你怎么開始做設計了?好問題!
這些方法寫單元測試了呢?
當然可以, 它們的輸入和輸出都是很明確的嘛。
等等,你可能會說,不是測試驅動設計嗎?你怎么開始做設計了?好問題!
TDD 要不要做提前設計呢?
Kent Beck 不做提前設計,他會選一個最簡單的用例,直接開寫,用最簡單的代碼通過測試。逐漸增加測試,讓代碼變復雜,用重構來驅動出設計。
在這個需求里,最簡單的場景是什么呢?
那就是文件內容為空,輸出也為空。
當然,對于復雜問題,可能要一邊寫一邊補充新的用例,但對于這種簡單的題目,基本可以提前就想清楚用什么用例驅動去什么產品代碼。
大概可以想到如下的用例:
-
"" => ""
-
"he" => "he 1",一個單詞,驅動出格式化字符串的代碼
-
"he is" => "he 1\r\nis 1",兩個不同單詞,驅動出分割單詞的代碼
-
"he he is" => "he 2\r\nis 1",有相同單詞,驅動出分組代碼
-
"he is is" => "is 2\r\nhe 1",驅動出分組后的排序代碼
-
"he is" => "he 1\r\nis 1",多個空格,完善分割單詞的代碼
Martin Fowler 的觀點是,以前我們寫代碼要做 Big Front Up Design
原文轉自:http://www.jianshu.com/p/62f16cd4fef3