編寫單元測試要點:
1.引用nunit.dll
2.using nunit.framework
3.宣告public類, 測試類新增[testfixture]屬性,此類必須有乙個public的、沒有引數的建構函式(預設建構函式就行)
4.測試方法必須新增[test]屬性,測試方法必須是public 沒有返回型別(void)
category:
單元測試中有個很好的東西,那就是分類(category),category可以將你想要測試的方法或者測試類組織到自定義的分類中,當執行此分類時便可以自動的執行依據包含的測試類和測試方法,當然它也可以排除自動執行某些分類,使用explicit=true屬性來指定是否自動執行,當未指定category時,則只執行explicit=false(預設情況為false)的分類。
測試之前和測試之後:
每個單元測試都可以獨立的執行,這樣互不干擾其他測試,在每個測試之前,都需要設定某些測試環境,測試完成後,需要清理或者是否某些資源,這裡有個不錯的東西[setup]和[teardown]屬性,每次執行[test]方法時會先呼叫[setup]方法,執行完成後會呼叫[teardown]方法,有了這兩個屬性就可以將比如資料庫鏈結和資料庫釋放的工作放到對應的方法中了,省的每個單元測試都寫重複的**。當然,這兩個屬性是針對測試方法的,同樣也可以為測試類指定[testfixtruesetup]和[testfixtrueteardown]。它們的原理同每個方法的[setup]和[teardown]一樣。
自定義斷言:
當然,在編寫單元測試的時候,誰也不想重複的拷貝和貼上自己的一段一段的測試**,那樣的話到了測試後期估計得崩潰了!這裡可以自定義斷言,將公共的測試方法提取,在其他的測試方法中呼叫,同我們編碼一樣,沒什麼不同。
exceptedexception
nunit還提供了[exceptedexception]屬性,這樣可以確定特定的**是否像我們期望的一樣引發了異常。
ignore
[ignore]屬性,可以讓測試時跳過某些還沒有寫好的測試方法或者測試類,等機會合適了在返回來完善測試方法和測試類。
其他
乙個程式集(assembly)可以有多個testfixture,乙個testfixture可以有乙個或多個測試方法,乙個測試方法可以有多個斷言。
乙個testsuite是一些testfixture類的集合,任何乙個測試類都可以包含乙個用[suite]標記的靜態方法,這個方法將返回乙個testsuite,它就是乙個textfixture類集合。
單元測試之道讀書筆記 九
總結 一般原則 測試任何可能失敗的地方。測試任何已經失敗的地方。對於新加的 在被證明正確之前,都可能是有問題的。至少編寫和產品 一樣多的測試 針對每次編譯都做區域性測試。簽入 之前做全域性測試。要回答的問題 我如何知道 執行是否正確呢?我要如何對它進行測試?還有那些方面可能會發生錯誤?這個問題是否會...
單元測試之道讀書筆記 七
1.通過使用面向測試的設計方法,更好地分離關注點 通過有意地設計出方便測試的 可以讓 具有更好的結構和可維護性。編寫 的時候要記住這個根本性問題 我要如何對 進行測試呢?如果答案不是顯而易見,編寫的看起來很醜陋或者難以編寫的話,就應該修改一些設計,直到易於測試為止。2.通過定義類不變形更好地產品設計...
單元測試之道讀書筆記 五
好的測試所具有的的品質 a trip 自動化 automatic 徹底的 thorough 可重複 repeatable 獨立的 independent 專業的 professional 1.自動化 呼叫測試自動化和檢查結果自動化。2.徹底的 測試所有可能出現問題的情況,覆蓋工具 ncover。3....