8.ExpectedExceptionAttribute
使用这个属性表明这个方法会抛出一个预期的异常。用这种方法来指出这个测试执行时会抛出的异常。Type,为期望的异常的精确类型。 第二个是一个期望的异常全名的字符串。 不管是哪一种,在执行测试时,如果它抛出了指定的异常,那么测试通过。如果抛出一个不同的异常,测试就失败。如果抛出了一个由期望异常继承而来的异常,这也是成功的。
[Test]
[ExpectedException(typeof(InvalidOperationException))]
public void ExpectAnExceptionByType()
{
}
[Test]
[ExpectedException("System.InvalidOperationException")]
public void ExpectAnExceptionByName()
{
}
9.PlatformAttribute
平台属性用于指定测试方法测试方法或测试Fixture运行的平台。平台选择包括了各种操作系统和.NET Framework版本。使用无大小写之分的字符串来指定平台,也通过使用Include或Exclude属性包含或排除运行的平台。也可以指定PlatformAttribute参数。不管是哪一种情况,都可以用多个逗号分隔字符串。
TestFixture语法
[TestFixture]
[Platform("NET-2.0")]
public class YJingLeeFixture
{
}
Test语法
[Test]
[Platform(Exclude = "WinXP")]
public void SomeTest()
{
}
平台指定值:Win系列、Unix、Linux、 Net、Net-1.0、Net-1.1、Net-2.0、NetCF等。它们可以平台指定值:Win系列、Unix、Linux、 Net、Net-1.0、Net-1.1、Net-2.0、NetCF等。它们可以为大写,小写或者混合的。
10.CategoryAttribute
这个属性可以将某些测试方法或测试Fixture指定为属于某个特定的分类。当使用分类时,仅选择的类别可以测试。没有选择的类别测试是不会运行的。 例如我们有些测试需要运行很长的时间,肯定不希望每次都去运行它。你就可以把这些测试归到某个类别中,然后在NUnit的GUI中将它排除在测试范围之外。注意这个属性在TestDriven.NET中不支持。
TestFixture语法
[TestFixture]
[Category("LongRunning")]
public class YJingLeeFixture
{
}
Test语法
[Test]
[Category("VeryLong")]
public void VeryLongTest()
{
}
11.ExplicitAttribute
这个属性会忽略一个测试方法或测试Fixture,直到它被显式的选择运行。如果你指定了它(比如你把鼠标放在这个方法上,然后选择RunTest)这个测试方法就会运行。我们常常用于暂时避免的测试方法。
TestFixture语法
[TestFixture,Explicit]
public class YJingLeeFixture
{
}
Test语法
[Test, Explicit]
public void ExplicitTest()
{
}
12.SuiteAttribute
Suite属性用来定义基于用户偏好的集合。在测试中不常用,因为框架提供了动态创建机制。
13.IgnoreAttribute
这个属性表明这个测试方法或测试Fixture会被忽略掉。一段时间内不会运行这个方法或测试Fixture。我们可以将测试方法或Fixture标记为Ignore属性,运行测试时,就不会执行。 例如我们常常使用这个属性标记暂时不运行测试或者重构软件时需要保留的测试来代替使用注释或重命名的方法,这样做,测试代码会和有这个标记的代码一起编译,在运行时不会运行标记的测试代码,这样保证不会忘记过去测试。
TestFixture语法
[TestFixture]
[Ignore("Ignore a fixture")]
public class YJingLeeFixture
{
}
Test语法
[Test]
[Ignore("Ignore a test")]
public void IgnoredTest()
{
}
在TestDriven.NET中,如果使用这个属性,测试显示结果如下:
好了,有关NUnit单元测试框架的属性就介绍这么多了,TestDriven.NET测试工具支持了这里大多数属性,我们完全可以使用这个工具完成我们的测试工作。下篇我继续为大家介绍断言的基本语法,接下来以一个实例实战一下测试技巧。