单元测试RedirectToRouteResult

mos*_*o87 19 asp.net-mvc unit-testing redirecttoaction redirecttoroute asp.net-mvc-3

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

public class MyController : BaseController
{
    public ActionResult MyMethod()
    {
        ...
        return RedirectToAction("Index", "Dashboard");
    }
}
Run Code Online (Sandbox Code Playgroud)

我想对这个重定向(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());
Run Code Online (Sandbox Code Playgroud)

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

And*_*eas 8

由于您不需要测试这两行,因此有一种更有效的方法

Assert.IsTrue(result.RouteValues.ContainsKey("action"));
Assert.IsTrue(result.RouteValues.ContainsKey("controller"));
Run Code Online (Sandbox Code Playgroud)

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