簡體   English   中英

MVC中用於路由單元測試的測試方法中的錯誤

[英]Error in test method in mvc for routing unit test

我正在MVC中創建一個測試項目以測試路由。

我收到此錯誤

Test Name:  RouteWithControllerNoActionNoId
Test FullName:  test.Web.Tests.Routing.TestRoute.RouteWithControllerNoActionNoId
Test Source:    d:\newtest\test.Web.Tests\Routing\TestRoute.cs : line 17
Test Outcome:   Failed
Test Duration:  0:00:06.6382043

Result Message: 
Test method test.Web.Tests.Routing.TestRoute.RouteWithControllerNoActionNoId threw exception: 
System.MissingMethodException: Method not found: 'System.Web.Routing.RouteValueDictionary        System.Web.WebPages.TypeHelper.ObjectToDictionaryUncached(System.Object)'.
Result StackTrace:  
at System.Web.Mvc.RouteCollectionExtensions.CreateRouteValueDictionaryUncached(Object values)
at System.Web.Mvc.RouteCollectionExtensions.IgnoreRoute(RouteCollection routes, String url, Object constraints)
at System.Web.Mvc.RouteCollectionExtensions.IgnoreRoute(RouteCollection routes, String url)
at test.Web.RouteConfig.RegisterRoutes(RouteCollection routes) in d:\newtest\test.Web\App_Start\RouteConfig.cs:line 15
at test.Wesb.Tests.Routing.TestRoute.RouteWithControllerNoActionNoId() in d:\newtest\test.Web.Tests\Routing\TestRoute.cs:line 21

這是我的示例代碼

    [TestMethod]
    public void RouteWithControllerNoActionNoId()
    {
        // Arrange
        var context = new StubHttpContextForRouting(requestUrl: "~/Home");
        var routes = new RouteCollection();
        RouteConfig.RegisterRoutes(routes);

        // Act
        RouteData routeData = routes.GetRouteData(context);

        // Assert
        Assert.IsNotNull(routeData);
        Assert.AreEqual("Home", routeData.Values["controller"]);
        Assert.AreEqual("Index", routeData.Values["action"]);
        Assert.AreEqual(UrlParameter.Optional, routeData.Values["id"]);
    }

我在這條線上出錯

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

在我的RouteConfig文件中

誰能幫我嗎?

請參閱: Mvc 5.1 MissingMethodException System.Web.WebPages.TypeHelper.ObjectToDictionaryUncached

“在“參考文獻中,我發現System.Web.WebPages.dll版本3.0.11001.0顯示了這種類型的錯誤,但是當我將其替換為System.Web.WebPages.dll版本3.0.20129.0時,它可以正常工作。因此,您應該刪除請從參考資料中下載舊版本,然后下載其他版本,然后再使用干凈的解決方案進行重建即可使用。”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM