ASP.NET MVC实践系列10-单元测试

发表于:2009-12-17来源:作者:点击数: 标签:
ASP.NET MVC实践系列10-单元测试 单元测试方法 最早接触单元测试是看了 极限编程 相关资料里边讲的 测试驱动开发 ,然后下载了 Nunit 研究了一下,但并没产生多大的触动,因为那个时候做的都是些时间紧任务重的事情,对于单元测试的直接感觉就是有可能比较费

      ASP.NET MVC实践系列10-单元测试   单元测试方法

  最早接触单元测试是看了极限编程相关资料里边讲的测试驱动开发,然后下载Nunit研究了一下,但并没产生多大的触动,因为那个时候做的都是些时间紧任务重的事情,对于单元测试的直接感觉就是有可能比较费时间。直到看了《敏捷软件开发:原则、模式与实践》,里边那个保龄球计分程序很精彩,让我知道了保龄球原来是这么计分的,更重要的是让我认识到测试驱动编程原来这样有意义,并且其实并不浪费时间(至于测试驱动编程到底有意义在哪里,我这里就不说了,大家可以参阅Kent的《测试驱动开发》,Robert C. Martin的《敏捷软件开发:原则、模式与实践》。在webform中对web层的逻辑很难做单元测试(当然我们可以利用mvp模式来分解web层逻辑,但因为没有框架的支持,并且实现起来也不是很简单,也不是特别好理解,所以应用并不广泛)。ASP.NET MVC很好的解决了测试web逻辑的问题,可测试性也变成了ASP.NET MVC的优势之一。下面我们就来介绍一下如何在ASP.NET MVC中进行单元测试。

  一、测试路由器:

  我们首先利用mvc的模板创建一个解决方案,我们可以在Gloabal.asax.cs文件中发现如下代码

默认路由代码

  public class MvcApplication : System.Web.HttpApplication

  {

  public static void RegisterRoutes(RouteCollection routes)

  {

  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

  routes.MapRoute(

  "Default", // Route name

  "{controller}/{action}/{id}", // URL with parameters

  new { controller = "Home", action = "Index", id = "" } // Parameter defaults

  );

  }

  下面我们就为这段代码写一个单元测试(如果对路由还不清楚请参见:ASP.NET MVC实践系列1-UrlRouting )

原文转自:http://www.ltesting.net