2012-02-22 99 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

回答