Как сделать модульное тестирование для IgnoreRoute в ASP.NET MVC - PullRequest
12 голосов
/ 30 апреля 2009

В ASP.NET MVC я могу получить информацию о модульном тестировании для маршрутов и пользовательских маршрутов, но не могу понять, как выполнить модульное тестирование для IgnoreRoute.

routes.IgnoreRoute ( "{ресурс} .axd / {* PathInfo}");

Практический код высоко ценится.

ASP.NET MVC Framework (часть 2): маршрутизация URL

Совет ASP.NET MVC № 13 - модульное тестирование пользовательских маршрутов

Совет ASP.NET MVC № 30 - создание пользовательских ограничений маршрута

Ответы [ 2 ]

15 голосов
/ 30 апреля 2009

Я бы проверил, что RouteHandler в RouteData для маршрута, соответствующего игнорируемому пути, имеет тип 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) );
    }
0 голосов
/ 14 декабря 2012

Если вы используете класс тестового помощника MvcContrib (http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci),, вы можете упростить его еще дальше:

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

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

    // Assert
    "~/some.axd/path".ShouldBeIgnored();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...