您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > Nunit
用Nunit自動(dòng)測試.NET代碼
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/12/7 11:24:44 ] 推薦標(biāo)簽:

 因?yàn)槲沂菑氖?Net開發(fā)的,看到很多關(guān)于JUnit的介紹,所以在這里轉(zhuǎn)貼一篇Nunit的文章。用來平衡一下Java不如.Net的心理。

    NUnit可以使你很快、很容易地對代碼進(jìn)行單元測試。而且它是免費(fèi)的。
    by Bill Wagner
   NUnit是一組類,你可以用它在你的.NET類上創(chuàng)建和執(zhí)行自動(dòng)的單元測試。作為對本篇文章的補(bǔ)充材料,你可以到NUnit網(wǎng)站上查看關(guān)于單元測試的價(jià)值的白皮書和文章(見資源)。

    你可以下載NUnit的已創(chuàng)建的類,或源代碼。我更喜歡下載源代碼。當(dāng)我訪問這個(gè)站點(diǎn)時(shí),NUnit新的版本是beta 2,我需要做些修改,這樣NUnit可以在RC1下創(chuàng)建和運(yùn)行單元測試了。

    首先,你需要為NUnit生成你自己的密鑰文件(key file),因?yàn)樵创a中不包含一個(gè)密鑰文件。按下面的方式生成正確類型的keyfile:sn -k NUnit.key

    接下來,你需要改變幾個(gè)原形(prototype),因?yàn)镹Unit項(xiàng)目包含Dispose的舊版本。新的原形應(yīng)該是: virtual void Dispose (bool Disposing);
    現(xiàn)在你可以構(gòu)建NUnit,運(yùn)行它,并運(yùn)用樣例測試了。運(yùn)行NUnitGUI項(xiàng)目來加載測試,選擇Browse按鈕來載入一個(gè)程序集。如果要用樣例,需要選擇SampleMoney.dll程序集。一旦你加載了一個(gè)程序集,TypeName框會顯示已經(jīng)定義了測試的程序集的類型。點(diǎn)擊Run按鈕,執(zhí)行所有的測試,并在窗口底部查看結(jié)果。

    運(yùn)行樣例很有用,但你可能想知道如何用你自己的代碼來創(chuàng)建和執(zhí)行測試。為了說明如何運(yùn)用NUnit,我將為前面寫的Source Count程序編寫一個(gè)測試包(test suite)。NUnit用reflection在你的單元測試代碼中找到測試方法。為了創(chuàng)建一個(gè)測試包,我們只需要?jiǎng)?chuàng)建一個(gè)執(zhí)行測試的類。你必須從 TestCase繼承這個(gè)類,TestCase是NUnit的一部分。你的新類中的任何測試方法必須是公有的并以“test”開頭。測試方法也應(yīng)該包含一個(gè)空的返回類型,并不用任何參數(shù)。下面是我的測試包中的兩個(gè)測試方法:public void testComments () {
     Assert ("Checking Comment lines",
           testObj.SingleLineComments == 2);
}

public void testDocs () {
     Assert
     ("Testing Documentation lines",
     testObj.DocumentationComments == 3);
}
    Assert方法(是NUnit的一部分)對測試結(jié)果進(jìn)行檢查。你可以用一個(gè)字符串來說明哪個(gè)測試失敗了。一些測試包在運(yùn)行前需要設(shè)置或拆分代碼; TestCase類為此提供了虛擬的函數(shù)。在我的測試中,我用了SetUp方法來初始化源代碼計(jì)數(shù)器:protected override void SetUp () {
     testObj = new CountStats ();
     StringReader reader = new
           StringReader (theTest);
     testObj.ProcessFile(reader);
}

    后,你需要一個(gè)靜態(tài)的方法來返回ITest接口。NUnit用了一個(gè)構(gòu)造器使這項(xiàng)工作變得很簡單。你可以用類型信息為任何測試包創(chuàng)建ITest接口:public static ITest createSuite {
     get {
           return new TestSuite (typeof
                 (MySuite));
     }
}


    這可以了。在列表1中你可以看到整個(gè)測試類。這并不是一個(gè)完整的測試包,但通過它,你仍可以對如何在你自己的項(xiàng)目中運(yùn)用NUnit有一定的了解。

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd