[ValueSource]:以數(shù)據(jù)源(Object類型)作為參數(shù),如下圖,左邊是源程序,右邊是編譯后生成的子測試
[Combinatorial]:兩組測試數(shù)據(jù)進(jìn)行組合,下面的代碼會(huì)生成12個(gè)子測試,如圖
[Sequential]:和上面[Combinatorial]的類似,不同之處見下圖
下面其它的Attribue也都大同小異,不愿意看文字說明的話,大家用NUnit運(yùn)行一下示例程序,再對比一下源程序知道了
[Range]:生成某個(gè)數(shù)據(jù)范圍內(nèi)的子測試,如
TestPrintColsole([Range(0.2, 0.6, 0.2)] double d):生成0.2,0.4,0.6三個(gè)子測試用例TestPrintColsole([Values(1, 2, 3, 4, 5, 6)] int x, [Range(0.2, 0.6, 0.2)] double d):兩個(gè)Attribuee結(jié)合,共生成18個(gè)子測試用例
[Random]:在某個(gè)范圍內(nèi)隨機(jī)生成測試用例,
TestPrintColsole([Random(-1.0, 1.0, 5)] double d):-1到1之間生成5個(gè)測試用例TestPrintColsole([Values(1, 2, 3, 4, 5, 6)] int x, [Random(-1.0, 1.0, 5)] double d) :共生成30個(gè)子測試用例
三:平臺(tái)類
[Culture]:當(dāng)Culture滿足某條件下,才執(zhí)行測試,如:
[Culture("fr-FR")]:僅當(dāng)在法文Culture時(shí),執(zhí)行測試[Culture(Exclude = "en,de")]:非英文和德文Culture時(shí),才執(zhí)行測試
[Platform]:當(dāng)Platform滿足某條件下,才執(zhí)行測試,如:
[Platform("NET-4.0")]:僅當(dāng)framework版本是4.0時(shí),才執(zhí)行測試
下面是NUnit官網(wǎng)聲稱的,其支持的平臺(tái)類型:
Win Win32 Win32S Windows Win32NT
WinCE Win95 Win98 WinMe NT3
NT4 NT5 NT6 Win2K WinXP
Win2003Server Vista Win2008Server Win2008ServerR2 Windows7
Unix Linux Net Net-1.0 Net-1.1
Net-2.0 Net-3.0 Net-3.5 Net-4.0 NetCF
SSCLI Rotor Mono Mono-1.0 Mono-2.0
Mono-3.0 Mono-3.5
四:其它類
[Category]:將測試方法分組,NUnit會(huì)取出所有的組名,列在Categories中,點(diǎn)擊它可以看到。這提供了另外一種測試用例的運(yùn)行方法,用戶可以在些選擇某一類的用例進(jìn)行測試,而不是只能以點(diǎn)擊分單位
[ExpectedException]:運(yùn)行時(shí)拋出的異常才能預(yù)期的行為。
如果沒有這個(gè)Attribute,要測試某些異常時(shí),只能使用Try Catch的方式,而下面的代碼則更為簡潔:
[Test][ExpectedException(typeof(System.DivideByZeroException))]//發(fā)生DivideByZeroException時(shí),測試通過public void Test1(){ int a = 0; int b = 1 / a; PrintConsole