1、準(zhǔn)備TestDriven和NUnit
單元測試對于程序員來說基本是一個必備的技能。“千里之堤,潰于蟻穴”這句話對于程序員也適用。記得一位大牛說過“笨蛋都能寫出讓機器看懂的程序,真正的聰明人寫出讓人看得懂的程序”。單元測試能顯著提高自己程序的質(zhì)量,當(dāng)項目變得很大的時候,良好的單元測試也能提高項目的質(zhì)量,當(dāng)然,它也能讓人充滿成感。好吧,讓我們開始單元測試之旅。
下載TestDriven:http://www.testdriven.net/default.aspx
下載NUnit:http://www.nunit.org/index.php?p=download
NUnit名氣非常大,而且功能也很強,盡管NUnit支持GUI和Console兩種工作方式,但是它使用起來確實不夠直觀,我們不得不不停地切換窗口以看到測試結(jié)果。而TestDriven非常方便,它和Visual Studio .Net2003和2005都集成的非常好,做到了即指即測。能較大的提高我們測試的效率。在安裝好TestDriven后,可以看到下面的一個小小的圖標(biāo)。
我們可以針對整個測試文件和單個函數(shù)進行測試,非常方便。下面主要談?wù)凾estDriven支持的屬性和參數(shù)。
2、TestDriven支持的一些重要的屬性
TestDriven其實可以支持大部分NUnit支持的屬性,但是有些屬性是無法支持的。其實對于自己進行單元測試來說,只需要知道常用的10多個屬性可以進行很好的測試了。下面常用和重要的屬性做一些解釋。
在開始測試之前,記得引用nunit.framework這個dll,然后
using NUnit.Framework;
2.1 [TestFixture] 屬性
這個屬性通常是用來修飾測試類,表明這個類是用于測試的。一般把它放在類聲明的上面,像下面這樣
[TestFixture]
//這個類是一個用來執(zhí)行單元測試的類
public class TestSimpleCalculator
{
// something
}
2.2 [TestFixtureSetUp] 屬性
這個屬性通常用來修飾一個方法,表明這個方法先于所有測試方法之前運行,類似于構(gòu)造函數(shù)。那么我們可以用來初始化一些對象等,非常有用。
[TestFixture]
public class UnitTestDemo
{
SimpleCalculator myMath;
//在所有測試方法運行之前運行
[TestFixtureSetUp]
public void InitFixture()
{
myMath = new SimpleCalculator();
}
}