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