【发布时间】:2016-12-15 14:04:34
【问题描述】:
在单元测试中,我正在使用
伪造 http 上下文 var fakeHttpContext = new Mock<HttpContextBase>();
var controllerContext = new Mock<ControllerContext>();
controllerContext.Setup(t => t.HttpContext).Returns(fakeHttpContext.Object);
this.controller.ControllerContext = controllerContext.Object;
现在在我的代码中我正在使用以下
UrlHelper helper = new UrlHelper(this.ControllerContext.RequestContext);
string url = helper.Action("Details", "Pers", new { id = person.Id });
为了使用 UrlHelper 代码,我应该在单元测试中模拟什么? 目前 UrlHelper 助手为空。
附言为了清楚起见,我没有在测试中显示控制器代码的整个初始化,它正在工作,但我现在正在努力处理这个请求上下文和 UrlHelper。
【问题讨论】:
-
控制器已经有一个
UrlHelper Url属性,你可以传递一个实例或模拟。无需在代码中新建一个。 -
那么,我是否错过了控制器上下文设置中的某些内容?
-
你在控制器中遗漏了一些东西。
标签: c# .net asp.net-mvc unit-testing