用NUnit自動測試.NET代碼

發表于:2007-04-22來源:作者:點擊數: 標簽:代碼測試因為.NETnunit
因為我是從事.Net 開發 的,看到很多關于JUnit的介紹,所以在這里轉貼一篇 Nunit 的文章。用來平衡一下 Java 不如.Net的心理。 NUnit可以使你很快、很容易地對代碼進行 單元測試 。而且它是免費的。 by Bill Wagner NUnit是一組類,你可以用它在你的.NET類上
 因為我是從事.Net開發的,看到很多關于JUnit的介紹,所以在這里轉貼一篇Nunit的文章。用來平衡一下Java不如.Net的心理。

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

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

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



    接下來,你需要改變幾個原形(prototype),因為NUnit項目包含Dispose的舊版本。新的原形應該是: virtual void Dispose (bool Disposing);


    現在你就可以構建NUnit,運行它,并運用樣例測試了。運行NUnitGUI項目來加載測試,選擇Browse按鈕來載入一個程序集。如果要用樣例,就需要選擇SampleMoney.dll程序集。一旦你加載了一個程序集,TypeName框就會顯示已經定義了測試的程序集的類型。點擊Run按鈕,執行所有的測試,并在窗口底部查看結果。

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

public void testDocs () {
     Assert
     ("Testing Documentation lines",
     testObj.DocumentationComments == 3);
}




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



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


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

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97