基本attribute:
testFixture:标识类为测试类
test:标识方法为测试方法
category:将测试方法分类别,以便管理哪些测试方法需要运行测试
suit:将多个testfixture组合到一个testsuit中,一个testsuite是一些testfixture集合;任何测试类都可以包含一个用[Suite]标记的静态方法,该方法返回TestSuite,它就是一个TestFixture类集合。通过Suite将fixture分组,就可以一次运行多个fixture了。
[Suite]
Public static TestSuite Suite(){
Get{
TestSuite suite=new TestSuite(“name of Suite”);
Suite.add(new DatabaseTests());
Suite.add(new MeTests());
}
}
环境attribute——PerMethod
每个测试的运行都应该是相互独立的,从而就需要在任何时候,以任意的顺序运行每个单独的测试。那么在每个测试开始前需要重新设置某写测试环境,或者在测试完成后释放一些资源。
Setup:标志在方法上,在每个[Test]方法前都会调用此[Setup]方法;
Teardown:标志在方法上,在每个[Test]方法完成后调用此[Teardown]方法。
环境attribute——PerClass
一般而言,只需针对每个方法设置运行环境,但在某些情况还需要对整个test class进行设置一些环境,以及在类中的所有方法都执行完后做一写清理工作。
TestFixtureSetUp:标志在方法上,此方法在[setup]执行前执行;
TestFixtureTearDown:标志在方法上,在[Teardown]执行完后执行。
异常attribute
Nuit提供了[ExpectedException]attribute;测试方法现在被期望抛出一个异常,于是,如果没有抛出异常,则测试将会失败!如果方法抛出了预期的异常。那么测试就会通过。
ExpectedException:[ExpectedException(typeof(ArgumentException))]
注意:一旦期望的异常抛出了,测试方法中剩余的代码就会被跳过。
一般而言,对于方法中每个被期望的异常都应该写一个专门的测试,来确认该方法应该在抛出异常的时候确实抛出异常。Nunit不但可以让一个断言失效,还可以跟踪这个堆栈并报告bug的堆栈调用顺序。
忽略attribute
当不想让某些测试运行时可以使用[ignore]忽视这些测试。
Ignore:[Ignore(“not ready to test this yet”)]