asp.net-mvc - 单元测试 RedirectToRouteResult

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

我的 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/

相关文章:

c# - Json数据列表、数组

javascript - Knockoutjs DropDownList 与 ViewBag

asp.net-mvc - 如何使用 ASP.net mvc4 将 HTML 导出为 PDF?

jquery - ASP.NET MVC 和 JQuery 对话框回发

asp.net-mvc - 尽管没有 [Required] 属性,MVC3 仍然出现 'property field is required' 错误

c# - 在 MVC 中的实体中创建新对象的操作方法中的 RedirectToAction

asp.net-mvc-3 - ASP.NET MVC 3 The view 'Error' or its master is not found or no view engine support the searched location

Python 单元测试 : How to unit test the module which contains database operations?

unit-testing - 是否可以在屏幕锁定的情况下运行 CodedUI 测试?

c# - 对返回简单任务的方法设置期望