In che modo test unitario per IgnoreRoute in ASP.NET MVC
-
03-07-2019 - |
Domanda
In ASP.NET MVC, posso ottenere informazioni sui test unitari per route e percorsi personalizzati, ma non riesco a capire come eseguire test unitari per IgnoreRoute.
routes.IgnoreRoute (" {resource} axd / {*} pathinfo ");
Il codice pratico è molto apprezzato.
ASP.NET MVC Framework (parte 2): routing URL
ASP.NET MVC Suggerimento n. 13 - Test unitario dei percorsi personalizzati
ASP.NET MVC Suggerimento n. 30 - Crea vincoli di percorso personalizzati
Soluzione
Verificherei che RouteHandler su RouteData per una route corrispondente al percorso ignorato sia di 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) );
}
Altri suggerimenti
Se si utilizza la classe testhelper MvcContrib (http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci), è possibile semplificarlo ulteriormente:
[TestMethod]
public void TestIgnoredRoute()
{
// Arrange
RouteTable.Routes.Clear();
// Act
GlobalApplication.RegisterRoutes(RouteTable.Routes);
// Assert
"~/some.axd/path".ShouldBeIgnored();
}