首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> ASP.NET >> 正文

对自定义路由进行单元测试

        在创建ASP.NET MVC应用程序时,如果你是忠于测试驱动开发的,你应该对所有东西进行单元测试。先编写单元测试,再编写代码来满足测试。重复、重复、重复到吐。

        路由是MVC应用程序中的重要部分。路由决定了一个URL如何映射到特定的控制器和控制器操作。由于路由在MVC应用程序中如此重要,所以你需要为路由编写单元测试。在这个Tip中,我将向你展示如何通过仿制HTTP Context来为路由编写单元测试。

        创建路由表

        你可以在Global.asax文件中为MVC应用程序创建路由。换句话说,它们是定义在GlobalApplication类中的。清单1包含了默认的Global.asax文件。

        清单1 - Global.asax

         using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Web;
        using System.Web.Mvc;
        using System.Web.Routing;
        namespace DefaultOne
        {
            public class GlobalApplication : 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
                    );
                }
                protected void Application_Start()
                {
                    RegisterRoutes(RouteTable.Routes);
                }
            }
        }

        默认情况下,一个路由包括名字、路径和默认路由。路由得到一个URL后会将其中的不同片段映射到特定的控制器、控制器操作和传递给操作的参数上。如:

        /Customer/Details/23
        Controller = Customer
        Action = Details
        Id = 23

        URL中的第一个片段被映射到控制器名字,第二部分被映射到控制器操作,而最后一部分被映射到名字为Id的参数。

        Default路由包含了默认值。如果没有指定控制器,则使用Home控制器。如果没有指定操作,则调用Index操作。如果没有指定Id,则传第一个空字符串。因此,下面的URL将被这样解释:

        Controller = Home
        Action = Index
        Id = ""

[1] [2] [3] 下一页

【责编:michael】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·WEB程序开发--ASP.NET和PHP、JSP究竟学哪个?
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航