Pergunta

Em ASP.NET MVC, eu posso obter informações sobre a unidade de teste para rotas e rotas personalizadas, mas eu não consigo descobrir como fazer o teste de unidade para IgnoreRoute.

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

código de prática é muito apreciado.

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

ASP.NET MVC Dica # 13 - Teste Unidade suas rotas personalizadas

ASP.NET MVC Dica # 30 - Criar restrições de rota personalizada

Foi útil?

Solução

Gostaria de verificar que o RouteHandler na RouteData para uma rota correspondente o caminho ignorado é do tipo 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) );
    }

Outras dicas

Se você usar a classe testhelper MvcContrib (http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci), você pode simpifly-lo ainda mais:

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

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

    // Assert
    "~/some.axd/path".ShouldBeIgnored();
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top