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

 因為我是從事.Net開發(fā)的,看到很多關于JUnit的介紹,所以在這里轉(zhuǎn)貼一篇Nunit的文章。用來平衡一下Java不如.Net的心理。

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

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

    首先,你需要為NUnit生成你自己的密鑰文件(key file),因為源代碼中不包含一個密鑰文件。按下面的方式生成正確類型的keyfile:sn -k NUnit.key

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

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

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

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


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

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