阅读RouteValues字典的RedirectToRouteResult
我正在学习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"]);
}
}
潜在缺少的System.Web
参考我是LOL @我自己。非常感谢! Betty – Sumeet 2012-02-22 08:58:10
在单元测试项目中添加对“System.Web”的引用也解决了我在MVC4中遇到的问题。 – 2014-10-02 14:31:29
这是怎么过的本地化?我在MVC4单元测试项目中遇到了同样的错误,并且接受的答案解决了它。也许增加更多标签? – 2014-10-02 14:31:59
第二个Michael Paulukonis的评论。 – 2015-12-21 09:28:37