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.kjueaiud.com/
領測軟件測試網最新更新
關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月