读RedirectToRouteResult的RouteValues字典

时间:2012-02-22 07:38:37

标签: asp.net-mvc unit-testing asp.net-mvc-2

我正在学习ASP MVC,因此是TDD和MVC框架的新手。我在编写模拟TestMethod时会发现一个问题,用于在Controller中测试一个Action,其中包含“RedirectToAction”。

编写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="abc@xyz.com",
                MessageBody="Some message here!!",
                Name="Sun"
            };

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

            if (resultRoute != null)
            {

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

1 个答案:

答案 0 :(得分:5)

可能缺少对System.Web的引用

来源:http://samritchie.net/2011/01/06/mvc-unit-testing-error/