单元测试结构

为了使 Team System 测试工具 能够识别出单元测试,此源代码文件必须位于某个测试项目中,而这个项目是 Visual Studio 解决方案的一部分。在生成此项目或生成整个解决方案时,测试项目将生成到包含可执行单元测试的程序集之中。

所有单元测试方法都使用 [TestMethod()] 属性进行标记(在 Visual Basic 中则为 <TestMethod()>),并且是 [TestClass()] 类的成员。而这个类又是在 Microsoft.VisualStudio.TestTools.UnitTesting 命名空间中定义的。在生成单元测试时,您可以看到,在所生成文件的开始处的 usingImports 语句中包含有此命名空间。

单元测试的属性(Attribute 和 Property)

除了单元测试方法的 [TestMethod()] 属性及其包容类的 [TestClass()] 属性之外,可使用其他属性启用特定的单元测试功能。在这些属性中,最主要的属性有 [TestInitialize()][TestCleanup()]。使用标记有 [TestInitialize()] 的方法对将要在其中运行单元测试的环境的各个方面进行准备;这样做的目的在于为单元测试的运行建立已知的状态。例如,可以使用 [TestInitialize()] 方法复制、更改或创建测试中将要使用的某些数据文件。

在运行完某个测试后,可通过标记有 [TestCleanup()] 的方法将环境返回到已知状态;这可能意味着需要删除文件夹中的文件,或将某个数据库返回到已知状态。例如,在测试了订单录入应用程序中使用的某个方法后,可将库存数据库重置为初始状态。此外,建议您在 [TestCleanup()] 或 ClassCleanup 方法中使用清除代码,而不要在终结器方法中使用此代码。从终结器方法引发的异常不会被捕捉到,并且会导致无法预料的结果。

TestContext 属性是测试类的一个重要属性。此属性包含的信息包括:当前正在运行的单元测试的名称、部署目录、日志文件的名称;对于数据驱动型测试,还包括所连接到的数据库。TestContext 属性返回一个 TestContext 实例。

 

posted @ 2011-08-20 19:13  sunnyboy  阅读(307)  评论(0编辑  收藏  举报