单元测试RedirectToRouteResult

时间:2013-07-26 08:50:01

标签: asp.net-mvc asp.net-mvc-3 unit-testing redirecttoaction redirecttoroute

我的控制器中有以下代码:

public class MyController : BaseController
{
    public ActionResult MyMethod()
    {
        ...
        return RedirectToAction("Index", "Dashboard");
    }
}

我想对此重定向(RedirectToRouteResult)进行单元测试。 我这样做了:

Assert.IsTrue(result.RouteValues.ContainsKey("action"));
Assert.IsTrue(result.RouteValues.ContainsKey("controller"));
Assert.AreEqual("Index", result.RouteValues["action"].ToString());
Assert.AreEqual("Dashboard", result.RouteValues["controller"].ToString());

所以我需要四个断言来测试我的RedirectToRouteResult。 有没有更有效的方法?

1 个答案:

答案 0 :(得分:8)

因为你不需要测试这两行,所以有一种更有效的方法

Assert.IsTrue(result.RouteValues.ContainsKey("action"));
Assert.IsTrue(result.RouteValues.ContainsKey("controller"));

这些是您尚未编写的代码的断言。你必须相信那些编写代码的人有自己的单元测试。如果前两条线路都有问题,那么你的两条最终断言就会失败。

相关问题