如何:创建 ASP.NET 单元测试

更新:2007 年 11 月

使用 ASP.NET 单元测试可对 ASP.NET 项目中的方法进行测试。可采用以下两种方式中的任意一种创建 ASP.NET 单元测试:

  • 通过从 ASP.NET 项目生成 ASP.NET 单元测试。这是最常用的方法。

  • 通过将现有的单元测试配置为 ASP.NET 单元测试。

还可以在运行配置中指定与 ASP.NET 单元测试所用属性对应的设置。以下几节对这些过程进行了描述。

说明:

在运行 ASP.NET 单元测试时,请勿对包含 ASP.NET 单元测试的类中的任何方法使用 ClassCleanupAttribute 或 ClassInitializeAttribute 属性。同样,请勿在与 ASP.NET 单元测试相同的程序集中使用 AssemblyCleanupAttribute 或 AssemblyInitializeAttribute 属性。在这些情况下使用这些属性所产生的结果不具有确定性。不过,可以对所有单元测试使用 TestInitializeAttribute 和 TestCleanupAttribute 属性。

无论这些测试运行中包含的测试类型如何,都将在测试运行之前和之后分别运行安装脚本和清理脚本。有关与测试运行一起运行的脚本的更多信息,请参见 测试部署概述如何:指定测试运行配置

生成 ASP.NET 单元测试

若要生成 ASP.NET 单元测试,首先要在 Visual Studio 解决方案中创建一个 ASP.NET 网站。然后向网站项目中添加一个类,最后从该类生成单元测试。

生成 ASP.NET 单元测试

  1. 若要生成 ASP.NET 单元测试,首先请创建一个 ASP.NET 网站。为此,请右击解决方案,指向“添加”,再单击“新建网站”。

  2. 在“添加新网站”对话框上单击“ASP.NET 网站”。

  3. 在“位置”之下单击“文件系统”指示 ASP.NET Development Server。

  4. 单击“确定”。

    现在即生成一个新网站。

  5. 向此项目中添加一个类。为此,请在“解决方案资源管理器”中右击该网站,再单击“添加新项”。

  6. 在“添加新项”对话框中单击“类”,再单击“添加”。

  7. 出现一个“Microsoft Visual Studio”对话框,询问是否要在 App_Code 文件夹中放置新类。单击“是”。

    说明:

    不能从 .aspx 文件或 App_Code 之外的其他文件夹中的代码生成测试。

  8. 生成一个 ASP.NET 单元测试。如果新类文件尚未打开,请在解决方案资源管理器中双击它以将其打开。

  9. 在类文件中右击该类,再单击“创建单元测试”。

  10. 随即出现“创建单元测试”对话框。有关如何使用此对话框生成单元测试的信息,请参见 如何:生成单元测试

  11. 验证已选定要为其生成测试的类、方法或命名空间。

  12. (可选)接受默认的“输出项目”或选择一个新项目。

  13. 完成上述操作后,单击“确定”。

    新 ASP.NET 单元测试即添加到测试项目中的文件中。

    若要查看该单元测试,请打开测试文件并滚动到末尾处。运行单元测试(作为 ASP.NET 单元测试)必需的属性均已自动指定。有关这些属性的更多信息,请参见下面的“配置 ASP.NET 单元测试”过程。

配置 ASP.NET 单元测试

可以将现有的单元测试配置为 ASP.NET 单元测试,方法为对特定测试的自定义属性赋值。可以在包含该单元测试的代码文件中设置这些值。

在设置自定义属性之前,首先应添加对支持自定义属性的命名空间的引用;此处为 Microsoft.VisualStudio.TestTools.UnitTesting.Web 命名空间。有了此引用,IntelliSense 就可以帮助您设置属性值。

注意   生成 ASP.NET 单元测试时,将自动设置这些属性。

配置 ASP.NET 单元测试

  1. 打开包含该单元测试的代码文件。

  2. 设置该单元测试的以下属性:

[TestMethod]

由于所有单元测试都需要 [TestMethod] 属性,因此应事先设置此属性。

[UrlToTest()]

这是运行此单元测试时所测试的 URL;例如 [UrlToTest(“https://localhost/WebSites/Default.aspx”)]

[HostType()]

使用 [HostType(¡°ASP.NET¡±)]。测试通常在 VSTest 宿主进程下运行,但 ASP.NET 单元测试必须在 ASP.NET 宿主进程下运行。

示例

示例 1. 如果使用 ASP.NET Development Server 运行网站,则为 ASP.NET 单元测试设置的属性和值与以下类似:

[TestMethod()]

[HostType("ASP.NET")]

[UrlToTest("https://localhost:25153/WebSite1")]

[AspNetDevelopmentServerHost("D:\\Documents and Settings\\user name\\My Documents\\Visual Studio 2005\\WebSites\\WebSite1", "/WebSite1")]

示例 2. 若要测试在 IIS 下运行的网站,请仅使用 TestMethod、HostType 和 UrlToTest 属性:

[TestMethod()]

[HostType("ASP.NET")]

[UrlToTest("https://localhost:25153/WebSite1")]

使用运行配置对 ASP.NET 单元测试进行配置

可以在运行配置中指定与 ASP.NET 单元测试所用的属性对应的设置。在运行配置中指定了这些属性之后,只要该运行配置为活动状态,就会在运行任何 ASP.NET 单元测试时应用这些设置。

说明:

只有一组 ASP.NET 单元测试设置有效:运行配置设置或属性设置,但永远都不可能是两者的组合。运行配置设置优先于属性(如果存在)。也就是说,即使在运行配置中只指定了一个 ASP.NET 设置,也将忽略任何指定为属性的 ASP.NET 设置。

使用运行配置对 ASP.NET 单元测试进行配置

  1. 打开一个运行配置文件。有关更多信息,请参见如何:指定测试运行配置

  2. 在“主机”页上,将“主机类型”设置为 ASP.NET。

    这将显示一些其他选择,其中有些选择与可在代码中指定的属性对应,如“要测试的 Url”。前面的“配置 ASP.NET 单元测试”过程中对这些属性进行了描述。

    完成“主机”页上值的设置后单击“保存”,再单击“确定”。

请参见

任务

如何:指定测试运行配置

如何:应用测试运行配置

概念

ASP.NET 单元测试概述

其他资源

如何:生成单元测试