2012-02-22 93 views
2

我正在學習ASP MVC,因此是新的TDD和MVC框架。我在寫模擬TestMethod時發現一個問題,用於測試Controller內部的Action,在其正文中使用「RedirectToAction」。閱讀RouteValues字典的RedirectToRouteResult

編寫testMethod以確保重定向的Action是正確的。我讀過它可以檢查RedirectToRouteResult.RouteValues,並獲取「action」鍵的值。即使在調試(注視屬性),我也能夠正確地得到它。但@編譯時測試顯示異常Cannot apply Indexing with [] to an expression of type RedirectToRouteResult.RouteValues

以下是引用的代碼片段:

public void TestHomeControllerContactRedirectRoute() 
     { 
      HomeController controller = new HomeController(); 
      ContactMessage message=new ContactMessage(){ 

       Email="[email protected]", 
       MessageBody="Some message here!!", 
       Name="Sun" 
      }; 

      RedirectToRouteResult resultRoute = controller.Contact(message) as RedirectToRouteResult; 

      if (resultRoute != null) 
      { 

       Assert.AreEqual("Contact", resultRoute.RouteValues["action"]); 
      } 
     } 
+1

這是怎麼過的本地化?我在MVC4單元測試項目中遇到了同樣的錯誤,並且接受的答案解決了它。也許增加更多標籤? – 2014-10-02 14:31:59

+0

第二個Michael Paulukonis的評論。 – 2015-12-21 09:28:37

回答