2009-04-30 3 views
11

ASP.NET MVC에서 경로 및 사용자 지정 경로에 대한 단위 테스트에 대한 정보를 얻을 수 있지만 IgnoreRoute에 대한 단위 테스트 수행 방법을 알 수 없습니다.ASP.NET MVC에서 IgnoreRoute에 대한 단위 테스트 수행 방법

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

내가 무시 된 경로와 일치하는 경로에 대한으로 RouteData에 RouteHandler 유형의 StopRoutingHandler의 있는지 확인 것이다; 당신이 (http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci)를 MvcContrib의 testhelper 클래스를 사용하는 경우

[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

, 당신도 그것을 더 simpifly 수 있습니다

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

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

    // Assert 
    "~/some.axd/path".ShouldBeIgnored(); 
} 
관련 문제