使用Moq对MVC6中的控制器路由功能进行单元测试

时间:2016-03-20 12:37:09

标签: c# asp.net unit-testing

我目前正在学习使用Moq进行单元测试,当我尝试在控制器中对路由功能进行单元测试时遇到问题。我实际上按照http://www.danylkoweb.com/Blog/how-to-successfully-mock-httpcontext-BT中的说明操作。感冒如下:

        RouteCollection routes = new RouteCollection();
        RouteConfig.RegisterRoutes(routes);
        moqRequest.Setup(e => e.AppRelativeCurrentExecutionFilePath).Returns("~/Home/Index");
        RouteData routeData = routes.GetRouteData(moqContext.Object);
        // Assert
        Assert.IsNotNull(routeData);
        Assert.AreEqual("Home", routeData.Values["controller"]);
        Assert.AreEqual("Index", routeData.Values["action"]);

但是,我无法在Asp.Net5 + MVC6中找到RouteConfig。我看到一些使用MvcApplication的文章,而不是RouteConfig,但我也找不到它。任何人都可以帮我指导一些与此问题有关的文章或帮助解决问题?谢谢。

1 个答案:

答案 0 :(得分:3)

请参阅以下答案

Unit testing routing in ASP.NET Core 1.0 (ex MVC 6)

他们建议进行集成/功能测试,并启动启动以测试路由。