2009-04-30 53 views
11

'da IgnoreRoute için birim testi nasıl yapılır ASP.NET MVC'de, yollar ve özel rotalar için birim sınama hakkında bilgi alabilirim, ancak IgnoreRoute için birim sınamasının nasıl yapılacağını anlayamıyorum.ASP.NET MVC

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

Pratik kodlar çok takdir edilmektedir.

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

cevap

14

ihmal yolunu uyan bir güzergah için RouteData üzerinde RouteHandler tipi StopRoutingHandler ait olup olmadığını kontrol ediyorum; Eğer (http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci) MVCContrib testhelper sınıfını kullanırsanız

[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

, hatta daha da simpifly edebilirsiniz:

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

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

    // Assert 
    "~/some.axd/path".ShouldBeIgnored(); 
}