使用 TestContext 类
在单元测试中,TestContext 类可以用于多种用途。下面是一些最常见的用途:
-
在任何单元测试中,TestContext 类都存储提供给单元测试的信息,例如,部署目录的路径。有关更多信息,请参见单元测试的结构。
-
在单元测试中,测试运行在 ASP.NET Development Server 上的 Web 服务。在这种情况下,TestContext 存储 Web 服务的 URL。有关更多信息,请参见测试 Web 服务。
-
在 ASP.NET 单元测试中,获取对 Page 对象的访问。有关更多信息,请参见使用 ASP.NET 单元测试。
-
在数据驱动的单元测试中,TestContext 类是必需的,原因是它提供对数据行的访问。有关更多信息,请参见使用数据驱动的单元测试、编写数据驱动的单元测试的代码和演练:使用配置文件定义数据源。
获取 TestContext
运行单元测试时,如果包含单元测试方法的测试类定义了 TestContext 属性,则系统会自动提供 TestContext 类型的一个具体实例。这意味着,您不必在代码中实例化或派生 TestContext 类型。您可以立即开始使用它,并且它提供了 IntelliSense 支持。
并不是所有测试类都自动定义了 TestContext 属性。测试类是否定义该属性取决于您创建测试的方式。
自动定义 TestContext 属性的情况
当基于代码生成单元测试时,会自动定义 TestContext 属性。有关生成单元测试的方法的更多信息,请参见如何:生成单元测试。
不自动定义 TestContext 属性的情况
可以通过多种方法来创建单元测试,而不是自动生成它们。如果使用以下方法中的任意一种来创建测试,测试类将不会自动定义 TestContext 属性:
-
手动编写新测试类。
-
向项目中添加新的单元测试文件。例如,您可以通过以下方法执行该操作:在“测试”菜单上选择“新建测试”,然后在“添加新测试”对话框中选择“单元测试”。
在上述情况下,必须手动添加 TestContext 属性。有关对单元测试进行编码的更多信息,请参见如何:创作单元测试。
TestContext 示例
要使用 TestContext,应在测试类中创建一个成员和一个属性,如下面的 C# 示例所示。
复制代码
private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } }
测试框架会自动设置该属性,您随后即可在单元测试中使用该属性。
From:
http://msdn.microsoft.com/en-us/ms404699(zh-cn).aspx
http://msdn.microsoft.com/zh-cn/library/ms404699(VS.80).aspx
http://msdn.microsoft.com/zh-cn/library/ms182409(VS.80).aspx