技术开发 频道

VS Team Edition在其它单元中的测试

  如果右击Helper类的AddPlacingResultInSession方法,可以创建与前面类似的单元测试。这一次,需要在会话中指定正确的结果。

[TestMethod()]
[HostType(
"ASP.NET")]
[AspNetDevelopmentServerHost(
"%PathToWebRoot%\\MyWebSite",
  
"/MyWebSite")]
[UrlToTest(
"http://localhost/MyWebSite")]
public void AddPlacingResultInSessionTest()
{
  
int x = 1; int y = 2;
  
int expected = 3;

  TestProject.HelperAccessor.AddPlacingResultInSession(x, y);
  Assert.AreEqual
<int>(expected,
    (
int)HttpContext.Current.Session["lastsum"]);
}

  只有执行了ASP.NET中的测试和被测试代码,测试才能成功(并且确实成功了!)。那么它如何工作的呢?当HostType("ASP.NET")和UrlToTest属性应用到前述测试方法时,起到了特殊作用。测试框架使用UrlToTest属性设定的URL指定目标Web应用程序。注意URL消息包含动态分配的端口号,本例中AspNetDevelopmentServerHost属性通知测试框架启动Cassini。之后,测试框架为目标Web应用程序更改web.config文件,并将其设置为针对VSEnterpriseHelper.axd端点路径的临时配置的HTTP模块和HTTP处理程序。安装的HTTP模块和处理程序使得测试框架称为目标Web应用程序的引导程序。通常,这种测试在ASP.NET内部运行。

  ·小结

  如果测试代码贯穿开发生命周期,那么能更快抓住和修改bug,并且完成高质量编码。Visual Studio Team Edition的两个版本(for Software Developers和for Software Testers)包含对单元测试代码的支持。读者可以使用它们的功能实践测试驱动开发或者测试现有代码,代码甚至还能运行在远程Web应用程序中。
 

0
相关文章