¿Cómo hacen las pruebas unitarias para IgnoreRoute en ASP.NET MVC?
-
03-07-2019 - |
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
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();
}