我的 Controller 中有以下代码:
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。 有没有更有效的方法?
最佳答案
有一种更有效的方法,因为您不需要测试这两行
Assert.IsTrue(result.RouteValues.ContainsKey("action"));
Assert.IsTrue(result.RouteValues.ContainsKey("controller"));
这些是您尚未编写的代码的断言。您必须相信编写该代码的人有自己的单元测试。如果尽管困难重重,前两行是错误的,那么您的最后两个断言将失败。
关于asp.net-mvc - 单元测试 RedirectToRouteResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17876958/