代码之家  ›  专栏  ›  技术社区  ›  CoderDennis

使用MVC控件测试ASP.NET MVC路由

  •  4
  • CoderDennis  · 技术社区  · 16 年前

    我正在尝试设置路由映射测试,使用 MVC Contrib 如中所述 Test ASP.NET MVC routes using MVC Contrib

    测试编译并执行,但它们总是失败,并显示消息“URL与任何路由都不匹配”。

    我设置了另一个测试,试图了解问题所在:

        Public Sub TestIndexRoute()
            Dim routes = New RouteCollection
            myMvcApp.MvcApplication.RegisterRoutes(routes)
            Assert.That(routes.Count > 0)
            Assert.NotNull(routes("Default"), "Default route not found.")
            Dim routeData = RouteTestingExtensions.Route("~/Author")
            Assert.NotNull(routeData, "routeData is Nothing.")
            Assert.That(routeData.Values("controller") = "Author")
        End Sub
    

    测试失败了 Assert.NotNull(routeData, "routeData is Nothing.") ,所以我知道尝试访问我的应用程序的RouteCollection的mvcontrib代码一定有问题。

    从博客帖子:

    它还假定您在ASP.NET MVC RouteCollection对象中设置了路由。

    我如何确认我在做这件事?我在后面的global.asax代码中使用mvcapplication.registerroutes方法中的routes.maproute。还有什么事情要做来正确设置这个吗?

    编辑: 我可能会提到我对单元测试还不熟悉。我拖延学习太久了,这似乎是一个很好的开始的地方。

    1 回复  |  直到 16 年前
        1
  •  4
  •   eu-ge-ne    16 年前

    尝试:

    MvcApplication.RegisterRoutes(RouteTable.Routes);
    

    而不是:

    Dim routes = New RouteCollection
    myMvcApp.MvcApplication.RegisterRoutes(routes)
    

    RouteTestingExtensions, line 43

    推荐文章