TestCase特性有两个效果,包括标记一个方法使用参数而且在调用的时候提供内置数据。示例以下,本示例会使用不一样数据集执行3次:html
[TestCase(12,3,4)] [TestCase(12,2,6)] [TestCase(12,4,3)] public void DivideTest(int n, int d, int q) { Assert.AreEqual( q, n / d ); }
Note:.net特性的限制了参数类型,NUnit会在提供给测试用力前尝试将提供的值用Convert.ChangeType()进行转换。ide
在一个测试方法上能够屡次运用TestCase特性,TestCase特性还能够使用FactoriesAttribute等特性来提供数据。测试
经过使用Result参数,测试用例能够有更简单.net
[TestCase(12,3, Result=4)] [TestCase(12,2, Result=6)] [TestCase(12,4, Result=3)] public int DivideTest(int n, int d) { return( n / d ); }
在上面的示例中,NUnit会检查方法返回值是否与提供的Result参数值相等。htm
TestCaseAttribute还提供一些列其余属性:blog
Description:描述测试用例详情排序
ExpectedException:指按期望抛出的异常ip
ExpectedExceptionName:指按期望抛出异常的全名ci
ExpectedMessage:指按期望抛出异常的信息get
Explict:设置为true标记测试用例为显示执行,用Reason来诠释原因
Ignore:设置为true用于指定忽略测试用例,用Reason来诠释原因
IgnoreReason:指定忽略测试用例及原因,等同于同时使用Ignore && Reason。注意:本特性会在之后版本中移除
MatchType:MessageMatch枚举类型,指定测试指望信息(详情见ExpectedExceptionAttribute)
Reason:指定不执行测试用例的原因,结合Ignore或Explicit特性使用
Result:指定测试方法指望的返回值,返回值类型必须是可兼容的
TestName:为测试用例指定一个名称,若是不指定会根据测试方法及参数自动生成。
执行顺序:
在NUnit2.5,会根据字母少顺序排序及执行。从NUnit2.5.1开始,测试用例不会排序,会根据发行的顺序进行执行。这个发现的顺序不是根据特性字典的顺序来排列而且会根据不一样的编译器及CLR的版本不一样而不一样。
结果就是在一个测试方法中,TestCase特性出现屡次或者其余提供数据的特性与TestCase特性一块儿使用,测试用例的顺序是不明确的。