2009-04-30 4 views
11

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

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

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

ASP.NET MVC Framework (Part 2): URL Routing

ASP.NET MVC Tip #13 – Unit Test Your Custom Routes

ASP.NET MVC Tip #30 – Create Custom Route Constraints

ответ

14

Я хотел бы проверить, что 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

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

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

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

    // Assert 
    "~/some.axd/path".ShouldBeIgnored(); 
} 
Смежные вопросы