深度解讀 - 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

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97