我一直在ASP.NET MVC項目工作了8個月。大多數情況下,我一直在使用TDD,但是在寫完實際的代碼之後,有些方面才被單元測試所覆蓋。總的來說,這個項目的測試覆蓋率很高。關於如何編寫重構友好的單元TDD測試技巧
我對目前的結果很滿意。重構真的非常容易,我的測試甚至在我第一次運行我的軟件之前幫助我發現了很多錯誤。另外,我開發了更復雜的假貨和幫手,以幫助我最小化測試代碼。
不過,我真的不喜歡的是事實,我經常發現自己不得不更新現有的單元測試來佔我的軟件做的重構。重構軟件現在是快速和無痛的,但重構我的單元測試是相當無聊和乏味的。實際上,維護我的單元測試的成本要高於首先編寫它們的成本。
我不知道我是否會做錯了什麼,或者如果測試開發的成本,這種關係與測試維護正常。我已經嘗試寫儘可能多的測試,以便覆蓋我的用戶故事,而不是系統地覆蓋我的對象界面,如this blog article中所建議的。
另外,你對如何編寫TDD的測試,使重構的假期,因爲一些測試儘可能任何進一步的提示嗎?
編輯:正如Henning和tvanfosson正確指出的那樣,它通常是編寫和維護成本最高的設置部分。根據我的經驗,破壞性測試通常是對域模型進行重構的結果,與這些測試的設置部分不兼容。
你可以舉一個具體的例子來說明你的代碼是如何重構你的單元測試的?雖然有時會發生這種情況,但我個人並不認爲真正的「單元」測試應該受到重構的影響(除了移動一些測試和/或爲編寫代碼編寫新測試之外)。我意識到這不是一個非常有用的答案,我希望具體的例子可能會導致一個。 – kdgregory 2010-01-13 12:40:02