我一直在嘗試爲我的一個開源項目遵循一個寬鬆的TDD工作流程。這是其他程序員使用的API。我應該在編譯之前編寫測試嗎?
因此,一個關鍵的方面,以及使API「工作」還在設計將如何被消耗掉。我聽到一些人說,在編譯之前編寫測試是浪費時間,並且在API穩定之前可能會不斷重寫。我還聽說,它應該遵循的工作流程如下所示:
- 寫這不會編譯測試
- 讓它編譯
- 讓它綠色
我一直試圖遵循這個工作流程,但我最終會遇到一些奇怪的事情。例如,在我的API我有這兩種方法:
Handles(string pattern); //had this one already
Handles(IPatternMatcher pattern); //needed this one
我需要獲得第二種形式的方法添加到我的API。所以,我結束了一個簡單的測試,像這樣:
public void Handles_SupportsIPatternMatcher()
{
var api=new MyAPI();
api.Handles(new TestPatternMatcher());
}
這似乎是浪費後,它被實施。
我應該繼續遵循這一流程,還是有辦法改善嗎?我如何避免編寫基本上只檢查編譯器錯誤的測試?由於它是一個公共消費品API,我應該擔心這樣的測試嗎?
「Red-Green-Refactor」聽起來比「不會編譯 - 編譯 - 綠色」好得多:P – 2013-02-15 05:21:52
這對於程序員來說是一個非常好的問題.stackexchange.com – 2013-02-15 05:24:36
@SimonWhitehead well ...技術上編譯器錯誤也算作「紅色」:) – Earlz 2013-02-15 05:27:53