c# - ASP.NET/MVC + MvcMockHelpers + RhinoMocks,谁设置RouteData?

标签 c# asp.net-mvc unit-testing rhino-mocks

我正在尝试为 ASP.NET MVC Controller 方法编写测试。我有 RhinoMocks(因为它似乎是最受欢迎和最受支持的)和 MvcMockHelpers (因为我似乎需要它)。

我的测试方法是这样的:

var controller = new MyController();
MvcMockHelpers.SetFakeControllerContext(mocks, controller);
mocks.ReplayAll();
var result = controller.MyAction(arg1, arg2);
// then i'd make assertions on the result

这是行不通的,因为 RouteData 没有条目,而 MyAction 取决于在那里设置了一堆值,比如“controller”和“action”。

我知道我可以为我想调用的每个 Controller 方法构建自定义 RouteData,但这看起来很愚蠢。 ASP.NET MVC 的哪一部分负责设置它,我如何才能进入该代码路径?

(我觉得在这里完全迷路了,所以如果我找错了树,也请告诉我。)

最佳答案

我在使用 RhinoMocks 的 MvcContrib Test Helper 中找到了最好的运气。

This is a decent intro

MVC Contrib 项目在 CodePlex

关于c# - ASP.NET/MVC + MvcMockHelpers + RhinoMocks,谁设置RouteData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1412653/

相关文章:

android - Mockito lenient() 何时使用

c# - Visual Studio 2015 (Windows 10) 中的 .NET Native 编译失败

c# - 在与 linq-to-entities 的一对多连接中仅获取一条(最后一条)记录

c# - 为什么没有 Guid.IsNullOrEmpty() 方法

angularjs - Angular 单元测试与集成测试

javascript - 如何替换 Polymer 中的元素和 stub 方法

C# - 通过反射枚举自定义属性

C# 数据源类和线程安全

javascript - 在 javascript 中使用 Html.DropDownList

c# - DataAnnotations 的 FileExtensions 属性在 MVC 中不起作用