什么是單元測試
單元測試就是編寫一段代碼,用來檢查某個特定條件下,另外一段代碼的行為是否符合我們的預期。單元測試的代碼與實際程序的代碼具有同等的重要性。
每一個單元測試,都是用來定向測試它所對應的一個單元的代碼是否正確執行。
單元測試的代碼應該由代碼的編寫者來完成。
單元測試的優點
1, 通過單元測試能夠協助程序員盡快找到代碼中bug的具體位置,
2, 而且好的單元測試能夠讓程序員對自己的程序更有自信。
3, 能夠讓程序員在提交項目之前就將代碼變得更加的健壯
4, 能夠協助程序員更好的進行開發
5, 能夠向其他的程序員展示你寫的程序應該如何調用
6, 能夠讓項目主管更了解系統當前的情況
VS2010中如何進行單元測試
VS中的測試工具可以對任何類、接口、結構等實體中的字段、屬性、構造函數、方法等進行單元測試。
單元測試分兩種:整體測試和單獨測試。
整體測試:如果要對一個類中所有的方法都添加測試用例,可以對類名點右鍵,這樣對類中所有方法自動生成測試方法。
單獨測試:如果只是對類中的某個方法進行單元測試,那么對方法點右鍵→創建單元測試即可。
案例:下面我們用一個案例說明如何使用vs中的單元測試。
步驟一:創建一個名稱為TestCase的控制台項目。
由於該步驟比較簡單,這里我們就不再贅述了。
然后添加一個Calculator類,在類中寫一個GetAvg方法
代碼如下:
步驟二:創建單元測試
接下來,將鼠標放到Calculator類上,然后點擊鼠標右鍵,從菜單項中找到“創建單元測試”項,結果如下圖
點擊確定后,在新建測試項目中,輸入需要創建的單元測試的新項目的名稱,然后單擊"創建"按鈕,則自動創建一個新的單元測試代碼項目
步驟三:根據需要修改測試用例
默認情況下,系統自動生成了測試用例方法,但是不符合我們的需求,我們需要訂正。
針對GetAvg方法我們可以做如下訂正。
說明:Assert.AreEqual(expected, actual);
Assert在這里可以理解成斷言:在VSTS里做單元測試是基於斷言的測試。
默認代碼中Assert.Inconclusive 表明這是一個未經驗證的單元測試。在實際的程序中可以注釋掉。
當然 ,Assert類還有其他方法
1、Assert類的使用
Assert.Inconclusive() 表示一個未驗證的測試;
Assert.AreEqual() 測試指定的值是否相等,如果相等,則測試通過;
AreSame() 用於驗證指定的兩個對象變量是指向相同的對象,否則認為是錯誤
AreNotSame() 用於驗證指定的兩個對象變量是指向不同的對象,否則認為是錯誤
Assert.IsTrue() 測試指定的條件是否為True,如果為True,則測試通過;
Assert.IsFalse() 測試指定的條件是否為False,如果為False,則測試通過;
Assert.IsNull() 測試指定的對象是否為空引用,如果為空,則測試通過;
Assert.IsNotNull() 測試指定的對象是否為非空,如果不為空,則測試通過;
步驟四:運行單元測試
通過
菜單項執行調試或者通過
進行調試。
步驟五:查看結果
這樣我們就完成對GetAvg方法的單元測試。
最后說下自己碰到的一些問題吧!
問題:在Win7系統上安裝了VS2010和VS2012,但是單元測試結果總是掛起。上網搜索了N久,也沒有找到解決方案,最后只能通過Reshapeer插件運行單元測試
當然如果單元測試出錯,會有對應的消息
好了,今天對單元測試的講解就到這里,以后有機會,再來更新后續內容…