基本attribute

testFixture:标识类为测试类

test:标识方法为测试方法

category:将测试方法分类别,以便管理哪些测试方法需要运行测试

suit:将多个testfixture组合到一个testsuit中,一个testsuite是一些testfixture集合;任何测试类都可以包含一个用[Suite]标记的静态方法,该方法返回TestSuite,它就是一个TestFixture类集合。通过Suitefixture分组,就可以一次运行多个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”)]