[ValueSource]:以數據源(Object類型)作為參數,如下圖,左邊是源程序,右邊是編譯后生成的子測試
[Combinatorial]:兩組測試數據進行組合,下面的代碼會生成12個子測試,如圖
[Sequential]:和上面[Combinatorial]的類似,不同之處見下圖
下面其它的Attribue也都大同小異,不愿意看文字說明的話,大家用NUnit運行一下示例程序,再對比一下源程序知道了
[Range]:生成某個數據范圍內的子測試,如
TestPrintColsole([Range(0.2, 0.6, 0.2)] double d):生成0.2,0.4,0.6三個子測試用例TestPrintColsole([Values(1, 2, 3, 4, 5, 6)] int x, [Range(0.2, 0.6, 0.2)] double d):兩個Attribuee結合,共生成18個子測試用例
[Random]:在某個范圍內隨機生成測試用例,
TestPrintColsole([Random(-1.0, 1.0, 5)] double d):-1到1之間生成5個測試用例TestPrintColsole([Values(1, 2, 3, 4, 5, 6)] int x, [Random(-1.0, 1.0, 5)] double d) :共生成30個子測試用例
三:平臺類
[Culture]:當Culture滿足某條件下,才執(zhí)行測試,如:
[Culture("fr-FR")]:僅當在法文Culture時,執(zhí)行測試[Culture(Exclude = "en,de")]:非英文和德文Culture時,才執(zhí)行測試
[Platform]:當Platform滿足某條件下,才執(zhí)行測試,如:
[Platform("NET-4.0")]:僅當framework版本是4.0時,才執(zhí)行測試
下面是NUnit官網聲稱的,其支持的平臺類型:
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會取出所有的組名,列在Categories中,點擊它可以看到。這提供了另外一種測試用例的運行方法,用戶可以在些選擇某一類的用例進行測試,而不是只能以點擊分單位
[ExpectedException]:運行時拋出的異常才能預期的行為。
如果沒有這個Attribute,要測試某些異常時,只能使用Try Catch的方式,而下面的代碼則更為簡潔:
[Test][ExpectedException(typeof(System.DivideByZeroException))]//發(fā)生DivideByZeroException時,測試通過public void Test1(){ int a = 0; int b = 1 / a; PrintConsole