TestFixture:它标记一个类包含测试,申明该类是用来测试的。一般用在class的定义之前;
Test一般是放在method之前,表示对该方法的测试;如前一篇文章所示的class。
SetUp/TearDown属性:这两个属性一般是用来对资源的初始化/清除的,每个测试的method之前/之后都会调用这两个属性所测试的函数。一般用来处理共享数据的初始化/清除。
TestFixtureSetUp/TestFixtureTearDown 也是用来对资源的初始化/清除的,但是它是用来标记test fixture初始化/清除一次时使用的,即整个测试过程中,只调用一次,一般用来标记连接数据库的方法。
Ignore属性:不用说大家也都能猜到是什么意思吧。当一个method还没有完成时,我们可以在它的测试函数前面加上该属性,当然也还要加上[Test]标签,那么在测试的时候,NUnit就会忽略对该函数的测试啦。等到该method完成之后,再去掉该[Ignore]标签,让它不再被忽略。
ExpectedException:有的函数会抛出某些异常,我们就可以写测试函数来判断该异常结果是否是预料之中的,如判断某个对象是否为空:
[Test]
[ExpectedException(typeof(NullReferenceException))]
public void
TestForException()
{
int[] arr =null;
Class1 myclass = new Class1();
myclass.FindMax(arr);
}
在这里,由于arr被赋予了null值,即为ExpectedException的类型中的NullReferenceException,测试的时候就会绿灯通过了。异常的类型还有很多,如被零除(DivideByZeroException)等,具体的可以参考NUnit的文档。
category属性:用该属性,我们可以将测试的method分类,类名可以自己定义,如
[Test]
[Category("Short time")]
public void
MyTest1()
{
}
在NUnit中,我们可以查看categories,然后选择需要测试的category进行测试