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