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

È stato utile?

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();
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top