Comment effectuer des tests unitaires pour IgnoreRoute dans ASP.NET MVC
-
03-07-2019 - |
Question
Dans ASP.NET MVC, je peux obtenir des informations sur les tests unitaires d'itinéraires et d'itinéraires personnalisés, mais je ne peux pas comprendre comment effectuer des tests unitaires pour IgnoreRoute.
routes.IgnoreRoute (" {{ressource} .axd / {* pathInfo} "));
Le code pratique est très apprécié.
Framework ASP.NET MVC (partie 2): routage des URL
Conseil ASP.NET MVC n ° 13: testez à l’unité vos itinéraires personnalisés
Conseil ASP.NET MVC n ° 30 - Création de contraintes de routage personnalisées
La solution
Je voudrais vérifier que le RouteHandler sur le RouteData pour un itinéraire correspondant au chemin 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) );
}
Autres conseils
Si vous utilisez la classe MvcContrib testhelper (http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci), vous pouvez simplement la modifier:
[TestMethod]
public void TestIgnoredRoute()
{
// Arrange
RouteTable.Routes.Clear();
// Act
GlobalApplication.RegisterRoutes(RouteTable.Routes);
// Assert
"~/some.axd/path".ShouldBeIgnored();
}