.NET測試工具NUnit2.5六大特性一覽
盡管只是一個(gè)小的版本號變化(前一個(gè)版本是2.4.8),NUnit2.5經(jīng)過將近一年的開發(fā)后,提供了許多全新的功能。身為NUnit的開發(fā)者和咨詢師,Charlie Poole撰寫了一篇特性列表。
.NET測試工具NUnit2.5特性1
數(shù)據(jù)驅(qū)動(dòng)測試。測試方法可能需要參數(shù)和數(shù)據(jù),它們可能以多種方式提供內(nèi)聯(lián)、來自另外一個(gè)獨(dú)立的方法或類、任意方式。該特性提供了一個(gè)簡潔的方法,用之表述一組實(shí)例,以在運(yùn)行中的單個(gè)測試用例中使用。
.NET測試工具NUnit2.5特性2
原則。傳統(tǒng)的、基于實(shí)例的測試允許你選擇一組或多組值,用于測試類似程序。而另一方面,原則允許你表述一般化的要求,可以編寫一個(gè)測試,能夠通過傳遞給它的任何值,只要這些值滿足約束條件。
.NET測試工具NUnit2.5特性3
內(nèi)聯(lián)期望異常測試。 引入 Assert.Throws斷言方法、以及更強(qiáng)大的約束表達(dá)式Throws.Exception,Throws.InstanceOf和Throws.TypeOf之后,異常測試邏輯現(xiàn)在可以移入到任何測試、或是其他必要的斷言之中了。
.NET測試工具NUnit2.5特性4
泛型支持和原因5Lambda表達(dá)式支持。
.NET測試工具NUnit2.5特性5
進(jìn)程外執(zhí)行和運(yùn)行時(shí)選擇。NUnit2.5擴(kuò)展了AppDomain的隔離方式,以在一個(gè)或多個(gè)隔離進(jìn)程中運(yùn)行。除了提供隔離之外,這還允許測試使用的.NET運(yùn)行時(shí)與NUnit正在運(yùn)行的.NET運(yùn)行時(shí)不同。
.NET測試工具NUnit2.5特性6
源代碼顯示。在Gui的錯(cuò)誤與失敗標(biāo)簽頁中,新的堆棧跟蹤顯示可以展示出發(fā)生問題的源代碼,只要源代碼可以訪問,并且程序的編譯帶有調(diào)試信息。目前,支持C#語法著色。
版本發(fā)行說明中提供了更多細(xì)節(jié),并介紹了其他特性。
SimoneBusoli指出新的約束條件模型具備很強(qiáng)的表達(dá)能力。此外,他還喜歡新的斷言和用來定制這些斷言的修飾符。他特別指出“讓修飾符可用于內(nèi)聯(lián)方法,這可真不錯(cuò)。因?yàn)樵诜浅6嗟臅r(shí)候,你要比較兩個(gè)對象的包含或是相等關(guān)系,而且你希望重寫這些對象在特定領(lǐng)域中相等的概念。”
OlofBjarnason發(fā)現(xiàn)新的Timeout屬性在開發(fā)循環(huán)相關(guān)代碼時(shí)非常有用。過去,當(dāng)編寫的無限次循環(huán)中出現(xiàn)錯(cuò)誤時(shí),你必須殺掉NUnit進(jìn)程。現(xiàn)在用Timeout屬性就可以中止測試了。
另外,Jamie Cansdale也發(fā)布了新版本的TestDriven.NET,該工具允許開發(fā)人員在VisualStudio中運(yùn)行自己的NUnit(以及其他框架)。
Charlie承諾未來將會(huì)回歸到更小的版本號、更頻繁的發(fā)布方式。NUnit3.0路線圖(pdf格式)中承諾支持更多的測試運(yùn)行器(包括Web運(yùn)行器,可以從Web服務(wù)器中執(zhí)行測試)。測試引擎層將支持分布式與并行測試運(yùn)行方式,亂序測試以及事務(wù)式測試行為。
其他.NET單元測試工具還有MBunit、CSUnit、xUnit.Net、NBehave和Gallio,Gallio是一個(gè)開放、可擴(kuò)展的、中立的測試運(yùn)行器,設(shè)計(jì)者希望它支持所有的.NET測試工具。
【編輯推薦】