1.通過使用面向測試的設計方法,更好地分離關注點
通過有意地設計出方便測試的**,可以讓**具有更好的結構和可維護性。編寫**的時候要記住這個根本性問題:我要如何對**進行測試呢?如果答案不是顯而易見,**編寫的看起來很醜陋或者難以編寫的話,就應該修改一些設計,直到易於測試為止。
2.通過定義類不變形更好地產品設計意圖
類的不變性是指乙個或者幾個針對類物件的斷言。如果乙個類物件有效的話,這些斷言都必須為。這一點是不可改變的。例如:對乙個實現的sorted list的類,它的不變性就是:他的內容必須是有序的。不管外面發生的任何事情,或者呼叫了該類的任何方法,這個list都必須是有序的--至少從物件的外面看來是有序的。類的不變性是內部實現的產物。
適合應用類的不變性的領域:結構化、數學不變性、資料一致性
3.通過使用測試驅動的設計方法,改善介面的設計
編寫實現**之前就先編寫它們的測試**,
4.確立和區域性化驗證的責任
測試無效的引數,誰負責驗證輸入的資料?你並不能信任系統的任何部分已經檢查了輸入資料,因此你只能親自檢查這些資料--或者至少針對你特別關注的情況來,建成資料的某些方面。重複檢查這些資料也違反了dry原則,同時還浪費了大量的時間和精力。誰輔助檢查輸入資料的有效性?通常最簡單的辦法是」別讓野蠻人進門「。在系統入口的位置就檢查輸入,在系統內部就不需要再次檢查。如果你的**負責檢查輸入資料,那麼就需要對這些**進行單元測試,因為系統中其餘的部分完全依賴於你的檢查結果,並且只依賴於你的檢查結果。
單元測試之道讀書筆記 九
總結 一般原則 測試任何可能失敗的地方。測試任何已經失敗的地方。對於新加的 在被證明正確之前,都可能是有問題的。至少編寫和產品 一樣多的測試 針對每次編譯都做區域性測試。簽入 之前做全域性測試。要回答的問題 我如何知道 執行是否正確呢?我要如何對它進行測試?還有那些方面可能會發生錯誤?這個問題是否會...
單元測試之道讀書筆記 五
好的測試所具有的的品質 a trip 自動化 automatic 徹底的 thorough 可重複 repeatable 獨立的 independent 專業的 professional 1.自動化 呼叫測試自動化和檢查結果自動化。2.徹底的 測試所有可能出現問題的情況,覆蓋工具 ncover。3....
單元測試之道讀書筆記 二
編寫單元測試要點 1.引用nunit.dll 2.using nunit.framework 3.宣告public類,測試類新增 testfixture 屬性,此類必須有乙個public的 沒有引數的建構函式 預設建構函式就行 4.測試方法必須新增 test 屬性,測試方法必須是public 沒有返...