Pregunta

En ASP.NET MVC, puedo obtener información sobre pruebas de unidad para rutas y rutas personalizadas, pero no puedo averiguar cómo hacer pruebas de unidad para IgnoreRoute.

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

El código práctico es muy apreciado.

ASP.NET MVC Framework (Parte 2): enrutamiento de URL

ASP.NET MVC Tip # 13 & # 8211; Unidad de prueba de sus rutas personalizadas

ASP.NET MVC Tip # 30 & # 8211; Crear restricciones de ruta personalizadas

¿Fue útil?

Solución

Comprueba que RouteHandler en RouteData para una ruta que coincida con la ruta ignorada 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) );
    }

Otros consejos

Si usa la clase de prueba de MvcContrib (http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci), puede simplificar aún más:

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

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

    // Assert
    "~/some.axd/path".ShouldBeIgnored();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top