我一直在閱讀關於「測試感染」的人,這意味着他們不只是「獲得」TDD,但也離不開它。他們已經「改造過」了。問題是,我怎麼得到這樣的結果?如何成爲TDD的「測試感染者」?
回答
被「測試感染」的一部分是你已經足夠使用TDD並且看到了足夠的成功你不想在沒有它的情況下編碼。一旦你經歷了一段寫作測試的循環,然後編碼和重構,並看到你的錯誤計數降低,結果你的代碼變得更好,不僅像Zxaos說的那樣成爲第二性質,你很難走出去回到Code First。這正在測試感染。
瞭解TDD開始,然後開始將其整合到您的工作流程中。如果您足夠使用這些方法,您會發現它們成爲第二天性,您將開始構架該框架內的所有開發任務。
此外,開始使用J-Unit(或X-Unit)框架來選擇您的語言。
您已經閱讀過TDD;閱讀更多不會激發你。
相反,你需要一個真正的個人成功故事。
以下是操作方法。從核心模塊中獲取一些代碼,這些代碼不依賴於外部系統或太多的其他子例程。例行程序的複雜程度和簡單程度無關緊要。
然後開始寫它的單元測試。 (我假設你有一個xUnit或類似的語言)。真正討厭測試 - 測試每個邊界情況,測試max-int和min-int,測試null的,測試字符串和列表中有數百萬個元素,測試字符串與韓國和控制字符和從右到左阿拉伯語和引號和反斜槓和句點和其他東西,如果不逃脫,往往會破壞事情。
你會發現什麼是....錯誤!起初,你可能會認爲這些錯誤並不重要 - 你還沒有遇到這些問題,你的代碼可能永遠不會這樣做,等等。但我的經驗是,如果你繼續推進,你會驚訝在一些小問題上。最終很難相信無這些錯誤將有史以來導致一個問題。
此外,您還可以獲得很高的成就感,並且確實做得很好。我們知道代碼是不完美的,很少沒有錯誤,所以當我們耗盡了那麼多的測試後,我們確實感到很自信。自信是一種不錯的感覺。
最後,我想最後一個會觸發愛情的事件會在數週或數月後發生。也許你正在修復一個bug或者添加一個特性或者重構一些代碼,你做的事情會打破一個單元測試。 「咦?」你會說,不理解爲什麼新的變化甚至與破碎的測試有關。然後你會找到它,並找到啓示。因爲你真的不知道你破壞了代碼,並且測試保存了你。
哈利路亞!
一個字,練習!做TDD需要花費一些開銷,而克服它的方法是練習並確保使用工具來幫助過程。你需要學習像手背一樣的工具。一旦你學習了與你正在學習的過程一起工作的工具,那麼它就會點擊,並且你將會流利地使用寫入測試來清除代碼。然後你會「測試感染」。
I answered一個類似於這個問題的回來。你可能也想檢查一下。我提到了一些工具並解釋了學習TDD。在這些工具中,Resharper和挑選一個好的模擬框架對於開展TDD非常重要。我無法強調學習這些工具以配合您正在使用的測試框架。
- 1. TDD集成測試
- 2. TDD:如何測試搜索?
- 3. MVC TDD:如何編寫Response.Redirect的測試?
- 4. TDD - 先寫測試?
- 5. TDD函數測試
- 6. ATDD測試與TDD測試的關係
- 7. 測試所需的行爲與TDD
- 8. 此測試值是否會在系統中造成感染?
- 9. TDD:如何創建測試初始值的測試
- 10. 我如何測試(TDD)單例類?
- 11. Laravel驗證,如何測試/ TDD?
- 12. TDD原理,如何使測試失敗
- 13. TDD - 如何測試.Read()沒有.Write()?
- 14. TDD/NodeJS中的流測試
- 15. TDD中的單元測試
- 16. TDD和測試的「誠實」
- 17. TDD和測試數據
- 18. TDD重複測試數據
- 19. TDD:「僅測試」方法
- 20. TDD測試結構問題
- 21. TDD /測試CSS和HTML?
- 22. TDD - 如何編寫測試用例,作爲Assembly.LoadFrom(...)
- 23. 嘗試...捕獲塊感染
- 24. 如何測試觀察者?
- 25. Delta測試,僅測試「受感染」代碼庫的變化部分
- 26. iOS中的測試驅動開發...到TDD或不TDD
- 27. TDD - 如何在測試中不執行基於時間的功能測試?
- 28. 如何協調單元測試方法和TDD只測試類的接口
- 29. iOS TDD:測試使用UIVIEW的方法animateWithDuration:動畫:完成:
- 30. 如何實現感知器測試