Frage

In ASP.NET MVC kann ich die Informationen über die unit-Test-für die Strecken und Routen, aber ich kann nicht herausfinden, wie unit-Tests für IgnoreRoute.

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

Praktische code ist sehr geschätzt.

ASP.NET MVC-Framework (Teil 2):URL-Routing

ASP.NET MVC Tip #13 – Unit-Test Ihrer Benutzerdefinierten Routen

ASP.NET MVC Tip #30 – Erstellen Sie Benutzerdefinierte Route Constraints

War es hilfreich?

Lösung

Ich würde überprüfen, dass die RouteHandler auf die RouteData für eine route matching ignoriert Weg geben 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) );
    }

Andere Tipps

Wenn Sie die MvcContrib testhelper-Klasse (http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci), können Sie simpifly es noch weiter:

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

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

    // Assert
    "~/some.axd/path".ShouldBeIgnored();
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top