使用MVC Contrib测试ASP.NET MVC路由

时间:2009-07-21 18:22:05

标签: asp.net-mvc vb.net unit-testing mvccontrib

我正在尝试使用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的MVCContrib代码一定存在问题。

来自博文:

  

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

我如何确认我这样做?我在Global.asax代码后面的MvcApplication.RegisterRoutes方法中使用routes.MapRoute。还有其他事情可以正确设置吗?

编辑:我应该提一下,我是单位测试的新手。我一直在推迟学习它,这似乎是一个很好的起点。

1 个答案:

答案 0 :(得分:4)

尝试:

MvcApplication.RegisterRoutes(RouteTable.Routes);

而不是:

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

请参阅RouteTestingExtensions, line 43