문제

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

lours.ignoreroute ( "{resource} .axd/{*pathinfo}");

실용적인 코드는 대단히 감사합니다.

ASP.NET MVC 프레임 워크 (2 부) : URL 라우팅

ASP.NET MVC TIP #13 - 유닛 테스트 사용자 정의 경로

ASP.NET MVC TIP #30 - 사용자 지정 경로 제약 제약 제작

도움이 되었습니까?

해결책

무시 된 경로와 일치하는 경로에 대한 Routedata의 RouteHandler가 유형 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) );
    }

다른 팁

mvccontrib testHelper 클래스 (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();
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top