2009-04-30 6 views
11

Dans ASP.NET MVC, je peux obtenir des informations sur les tests unitaires pour les routes et les itinéraires personnalisés, mais je ne peux pas comprendre comment faire des tests unitaires pour IgnoreRoute.Comment faire des tests unitaires pour IgnoreRoute dans ASP.NET MVC

routes.IgnoreRoute ("{} ressources .axd/{*} Pathinfo");

Le code pratique est très apprécié.

ASP.NET MVC Framework (Part 2): URL Routing

ASP.NET MVC Tip #13 – Unit Test Your Custom Routes

ASP.NET MVC Tip #30 – Create Custom Route Constraints

Répondre

14

je voudrais vérifier que le RouteHandler sur le RouteData pour une route correspondant à la trajectoire ignoré est de type StopRoutingHandler;

[TestMethod] 
    public void TestIgnoredRoute() 
    { 
     // Arrange 
     var routes = new RouteCollection(); 
     GlobalApplication.RegisterRoutes(routes); 

     // Act 
     var context = new FakeHttpContext("~/some.axd/path"); 
     var routeData = routes.GetRouteData(context); 

     // Assert 
     Assert.IsInstanceOfType(routeData.RouteHandler, typeof(StopRoutingHandler)); 
    } 
0

Si vous utilisez la classe testhelper MvcContrib (http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci), vous pouvez simpifly encore plus loin:

[TestMethod] 
public void TestIgnoredRoute() 
{ 
    // Arrange 
    RouteTable.Routes.Clear(); 

    // Act 
    GlobalApplication.RegisterRoutes(RouteTable.Routes); 

    // Assert 
    "~/some.axd/path".ShouldBeIgnored(); 
} 
Questions connexes