考慮這兩個數據驗證場景:TDD能否成爲替代過度殺傷數據驗證的有效選擇?
檢查事事處處
確保每一個需要一個或多個參數實際檢查它們的方法,以確保它們是語法有效。
優點
- 非常精細檢查粒度。
- 如果正在編寫的代碼適用於某種類型的庫,那麼如果開發人員使用它的代碼不能提供有效的數據,我們一定要限制可以完成的損害。
缺點
- 這是昂貴的,始終執行大部分的時間應該沒有必要的檢查。
- 現在仍然可以忘記添加支票。
- 更多代碼正在編寫中,因此需要維護。
。利用TDD善良的,當它進入只有
驗證數據從外部世界中你的代碼。 爲了確保內部數據總是在語法上正確,創建測試來檢查每個返回值的方法。爲確保有效數據輸入,有效數據將退出。
優點和缺點實際上與以前的方法切換。
截至目前我正在使用第一種方法,但由於我正在使用測試驅動開發,我認爲也許我可以與第二種方法一起使用。
優點很明顯,仍然,我不知道它是否像第一種方法一樣安全。
這很有趣。儘管如此,如果我在運行時檢查中錯過了某些東西,我是不是還會遇到討厭的異常?這不就等於不好寫我的測試嗎?那麼我只會確保無效數據在入口點得到妥善處理,而不是完整的應用程序。 – RobSullivan 2009-09-04 17:19:35