2009-04-30 8 views
11

En ASP.NET MVC, puedo obtener información sobre pruebas de unidades para rutas y rutas personalizadas, pero no puedo entender cómo hacer pruebas unitarias para IgnoreRoute.¿Cómo se realizan las pruebas unitarias de IgnoreRoute en ASP.NET MVC

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

Código práctico es muy apreciado.

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

Respuesta

14

Me gustaría comprobar que el RouteHandler en la RouteData para una ruta que coincida con el camino ignorado es de tipo 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 se utiliza la clase testhelper MvcContrib (http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci), puede simpifly aún más:

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

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

    // Assert 
    "~/some.axd/path".ShouldBeIgnored(); 
} 
Cuestiones relacionadas