注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Dotnet >> ASP.NET >> Dotnet正文

ASP.NET MVC架构下的测试驱动开发

文章来源:chinaitlab社区 作者:佚名 更新时间:2008-8-23 15:17:43 【 】 【加入收藏

    一、引言

   本文旨在向你解释创建如何使用Visual Studio 2008进行单元测试。更具体地说,我不想泛泛地谈论单元测试的有关概念,而是想专注于讨论当构建ASP.NET MVC Web应用程序工程时如何在测试驱动开发环境下构建一个特定类型的单元测试。

   其实,并非所有的单元测试都是优秀的TDD测试。要想在测试驱动开发中应用单元测试,你必须能够执行以非常快的速度执行单元测试。然而,并非所有的单元测试都能满足这个要求。

   例如,Visual Studio针对ASP.NET网站提供了一种特定类型的单元测试支持。你必须在IIS或开发web服务器上下文中执行这个类型的单元测试。但是,当你进行测试驱动开发时,这并不是一个适当类型的单元测试,因为这个类型的单元测试速度太慢了。

   在本文中,我想向你展示构建用于测试驱动开发的单元测试的详细过程。我将详细地向你描述使用Visual Studio 2008单元测试框架的有关细节。此外,我还要讨论若干高级题目,例如测试私有方法和如何从命令行执行测试,等等。

   【注意】本文中所描述的大多数特征为Visual Studio 2008 Professional Edition所支持。但遗憾的是,这些特征却并不为Visual Web Developer所支持。因此,如果读者想了解关于Visual Studio 2008中每种版本对于单元测试特征的支持详情,请参考网址http://msdn2.microsoft.com/en-us/library/bb385902.aspx。

    二、快速创建一个ASP.NET MVC Web应用程序示例

   首先,让我们创建一个新的ASP.NET MVC Web应用程序工程并且创建一个相应的测试工程。这一步是非常容易的。当你创建一个新的ASP.NET MVC Web应用程序工程时,系统会随后提示你是否创建一个新的Visual Studio测试工程,如图1所示。只要你保持图1顶部的单选按钮(即缺省的选项),那么你会看到一个新的测试工程自动地添加到你的方案上。

  




         图1—创建一个新的ASP.NET MVC Web应用程序工程和相应的单元测试工程

   现在的问题是:既然你有一个测试工程,那么你该如何使用这个测试工程呢?

   当你创建一个新的ASP.NET MVC应用程序时,工程包括一个名字为HomeController的控制器。这个控制器有两个名字分别为Index()和About()的缺省方法。相应于该HomeController工程提供了一个文件名字为HomeControlleterTest的测试工程。这个测试文件包含两个测试方法,分别为Index()和About()。

   默认情况下,Index()和About()这两个测试方法内容为空(如图2所示)。接下来,你可以在这些方法中添加你的测试逻辑。

  



              图2—系统自动生成的测试工程中的About()测试方法为空

   假设我们要构建一个在线存储系统。比如说,你想创建一个Details页面用于显示一个特定产品的细节信息。然后,你要把一个包含ProductId的查询字符串传递到这个Details页面,并且要实现从数据库中检索产品细节信息,而且要把此信息显示到页面上。

   在良好的测试驱动开发实践中,在真正编码之前,你首先需要编写一个测试。你不是先编写任何应用程序代码,而是先编写相应于该代码的测试。为了创建一个成功的Details页面,必须满足下列测试要求:

   (1)如果没有把一个ProductId传递到该页面,则应该抛出一个异常
   (2)该ProductId应该用于从数据库中检索一个产品
   (3)如果不能从数据库中检索出一个相匹配的产品,那么应该抛出一个异常
   (4)Details视图应该能够顺利生成
   (5)Product数据应该被赋值给Details视图的ViewData结构

  • 上一篇Dotnet:

  • 下一篇Dotnet:
  • 最 新 热 门
     SOA and Web services 新手入门i学习
     浅谈Web Services版本控制
     J2EE vs .NET-建置XML WebServices
     利用.NET FileStreams将DTD插入XML文件中_Q…
     XML开发入门基础:XML和HTML的区别
     带你认识Eclipse XML编辑器
     XML开发入门基础:使用CSS显示XML
     XML开发入门基础:查看 XML 文件
     XML开发入门基础:XML 浏览器支持
     XML开发入门基础:XML 验证
    最 新 推 荐
     使用Exist属性来判断控件是否存在
     浅谈ASP.NET验证码技术
     编程者必须学习的10项.NET技术
     .NET中加密和解密的实现方法
     asp.net 2.0多语言网站开发解决方案
     .NET 2.0中直接得到页面HTML代码
     .Net开发关于命名空间和目录划分
     ASP.NET 中整合JavaScript技巧
     asp.net中生成缩略图并添加版权
     asp.ne开发中t跳转页面的三种方法比较
    相 关 文 章

    关于ASP.NET技术的学习顺序问题
    如何用Visual Basic编写病毒
    vb.net 通过app.config来改变编译路径的问题
    通过app.config来改变编译路径的问题
    visual basic 6.0遍历文件夹下所有文件
    浅谈ASP.NET验证码技术
    asp.net 2.0多语言网站开发解决方案
    ASP.NET 中整合JavaScript技巧
    asp.net中生成缩略图并添加版权
    asp.ne开发中t跳转页面的三种方法比较

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用