單元測試基礎知識 單元測試工具
前言
本文是閱讀了《單元測試之道》一書后的筆記,也是公司安排本人進行單元測試培訓的材料,原文是一個Powerpoint,故修改了下,并針對Visual studio 2005自帶的單元測試做的一個整理,將其奉獻出來,目的是供需要了解和學習單元測試的朋友們閱讀。如有錯誤望指出。
什么是單元測試?
單元測試是開發者編寫的一小段代碼,用于檢驗被測代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用于判斷某個特定條件(或者場景)下某個特定函數的行為。例如,你可能把一個很大的值放入一個有序list 中去,然后確認該值出現在list 的尾部;蛘,你可能會從字符串中刪除匹配某種模式的字符,然后確認字符串確實不再包含這些字符了。
執行單元測試,是為了證明某段代碼的行為確實和開發者所期望的一致。
為什么需要單元測試?
當編寫項目的時刻,如果我們假設底層的代碼是正確無誤的,那么先是高層代碼中使用了底層代碼;然后這些高層代碼又被更高層的代碼所使用,如此往復。當基本的底層代碼不再可靠時,那么必需的改動就無法只局限在底層。雖然你可以修正底層的問題,但是這些對底層代碼的修改必然會影響到高層代碼。于是,一個對底層代碼的修正,可能會導致對幾乎所有代碼的一連串改動,從而使修改越來越多,也越來越復雜。從而使整個項目也以失敗告終。
而單元測試的核心內涵:這個簡單有效的技術就是為了令代碼變得更加完美。
什么是斷言
Assertion(斷言),它是一個簡單的方法調用,用于判斷某個語句是否為真。
例如:
public void IsTrue(bool condtion){
if(!condition) abort();
}
應用則為:
int a=2;
IsTrue(a==2);
還可以編寫更多的特定數據類型的斷言。
計劃你的單元測試
當我們編寫了一個如下的函數,它用于查找list中的最大值:static int Largest(int[] list);
所能想到的測試如下:
MILY: '微軟雅黑','sans-serif'">輸入 |
預期結果 |
7,8,9 |
9 |
8,9,7 |
9 |
9,7,8 |
9 |
7,9,8,9 |
9 |
1 |
1 |
-9,-8,-7 |
-7 |
null |
Exception |
創建單元測試
在解決方案資源管理器中右擊某個測試項目,或在 Visual Studio 代碼編輯器中,右擊要測試的命名空間、類或方法并選擇“創建單元測試”。
文章來源于領測軟件測試網 http://www.kjueaiud.com/