我的控制器中有以下代码:
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。 有没有更有效的方法?
答案 0 :(得分:8)
因为你不需要测试这两行,所以有一种更有效的方法
Assert.IsTrue(result.RouteValues.ContainsKey("action"));
Assert.IsTrue(result.RouteValues.ContainsKey("controller"));
这些是您尚未编写的代码的断言。你必须相信那些编写代码的人有自己的单元测试。如果前两条线路都有问题,那么你的两条最终断言就会失败。