【发布时间】:2014-09-23 16:52:01
【问题描述】:
我花了几天时间尝试模拟、存根和伪造我的可测试应用程序。我通常不测试控制器动作,而是测试我所有的其他类和模式。
我撞到的墙是新的属性路由功能。虽然我可以使用路由类来注册我的规则等。但在调用 MapMvcAttributeRoutes 时出现此错误。
在应用程序的预启动初始化阶段不能调用此方法
这里讨论。
说实话,我无法理解答案。不是代码,而是碎片化的版本、指向其他错误的链接、GitHub 等。
我对底线答案有点迷茫:
截至 2014 年 10 月 23 日。是否可以在测试条件下注册所有路由,我需要什么版本的 MVC 以及我需要调用哪些类/方法?
目前,我使用UrlHelper 的课程搞砸了,因为缺少所需的路线。我正在注入子类来绕过这个问题,但我认为伪造运行时 MVC 环境并让我的应用程序在没有大量 DI 杂技的情况下运行是不合理的。
如果这些是框架本身中的一个简单助手会很好,它可以接受描述原始 HTTP 请求的 JSON 对象并正确创建 Controller、HttpContext、ControllerContext 等就好像这是一个真正的在线请求。
谢谢,
卢克
【问题讨论】:
-
虽然这适用于 WebApi,但我认为它应该可以工作.. 它使用模拟 UrlHelper...asp.net/web-api/overview/testing-and-debugging/…
-
目前,我要么模拟
UrlHelper,要么我有一个HyperlinkModel来表示一个链接,我将我的HyperlinkModelBuilder子类化并伪造主链接构建逻辑。
标签: c# asp.net asp.net-mvc unit-testing