在单元测试中使用 Microsoft.VisualStudio.TestTools.UnitTesting 成员

单元测试框架支持在 Visual Studio 中进行单元测试。 对单元测试进行编码时,请使用 Microsoft.VisualStudio.TestPlatform.UnitTestFramework 命名空间中的类和成员。 当您从头开始编写了单元测试或要改进由测试的代码生成的单元测试时,您便可以使用这些类和成员。

元素组

为了帮助提供对单元测试框架的更为清晰的概述,本节将 UnitTesting 命名空间的元素分为相关的功能组。

备注

使用特性元素(其名称以字符串 Attribute 结尾)时,它可以带字符串 Attribute,也可以不带。例如,下面的两个代码示例功能完全相同:

[TestClass()]

[TestClassAttribute()]

Ff770525.collapse_all(zh-cn,VS.110).gif用于数据驱动测试的元素

使用以下元素来设置数据驱动的单元测试。 有关更多信息,请参见如何:创建数据驱动的单元测试演练:使用配置文件定义数据源

  • DataAccessMethod

  • DataSourceAttribute

  • DataSourceElement

  • DataSourceElementCollection

用于建立调用顺序的特性

用下列特性之一进行修饰的代码元素将在您所指定的时刻被调用。 有关更多信息,请参见单元测试分析

Ff770525.collapse_all(zh-cn,VS.110).gif对于程序集

在加载程序集之后以及卸载程序集之前,将调用 AssemblyInitialize 和 AssemblyCleanup。

  • AssemblyInitializeAttribute

  • AssemblyCleanupAttribute

Ff770525.collapse_all(zh-cn,VS.110).gif对于类

在加载类之后以及卸载类之前,将调用 ClassInitialize 和 ClassCleanup。

  • ClassInitializeAttribute

  • ClassCleanupAttribute

Ff770525.collapse_all(zh-cn,VS.110).gif对于测试方法

  • TestInitializeAttribute

  • TestCleanupAttribute

用于标识测试类和方法的特性

每个测试类都必须具有 TestClass 特性,每个测试方法都必须具有 TestMethod 特性。 有关更多信息,请参见单元测试分析

  • TestClassAttribute

  • TestMethodAttribute

Assert 类和相关异常

单元测试可以通过使用各种 Assert 语句、异常和特性来验证特定应用程序的行为。 有关更多信息,请参见使用 Assert 类

  • Assert

  • CollectionAssert

  • StringAssert

  • AssertFailedException

  • AssertInconclusiveException

  • UnitTestAssertException

  • ExpectedExceptionAttribute

TestContext 类

下列特性以及为其所赋的值显示在 Visual Studio 中特定测试方法的“属性”窗口中。 这些特性并未设计为通过单元测试代码来访问。 相反,它们会通过 Visual Studio 的 IDE 或 Visual Studio 测试引擎来影响使用或运行单元测试的方式。例如,其中的一些特性会在测试管理器窗口和测试结果窗口中显示为列,这表示您可以使用这些特性对测试和测试结果进行分组和排序。 此类特性之一是 TestPropertyAttribute,使用它可以向单元测试中添加任意元数据。 例如,可以使用它来存储此测试所涵盖的测试通过的名称,方法是使用 [TestProperty("TestPass", "Accessibility")] 对单元测试进行标记。 或者,您可以使用它来存储此类测试的指示符:([TestProperty("TestKind", "Localization")])。 您使用此特性创建的属性以及所赋的属性值都将显示在标题为**“测试特定的”**的 Visual Studio“属性”窗口中。

  • OwnerAttribute

  • DeploymentItemAttribute

  • DescriptionAttribute

  • HostTypeAttribute

  • IgnoreAttribute

  • PriorityAttribute

  • TestPropertyAttribute

  • WorkItemAttribute

测试配置类

用于生成报告的特性

本节中的特性将它们所修饰的测试方法与 Team Foundation Server 团队项目的项目层次结构中的实体相关联。

  • CssIterationAttribute

  • CssProjectStructureAttribute

用于专用访问器的类

Using Publicize to Create a Private Accessor中所述,您可以为私有方法生成单元测试。 此生成会创建专用访问器类,该类将实例化 PrivateObject 类的对象。 PrivateObject 类是一个包装类,它使用反射作为专用访问器进程的一部分。 PrivateType 类与之相似,但它用于调用私有静态方法,而不是调用私有实例方法。

  • PrivateObject

  • PrivateType

请参见

参考

Microsoft.VisualStudio.TestPlatform.UnitTestFramework