首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试UrlHelper.RouteUrl()?

如何测试UrlHelper.RouteUrl()?
EN

Stack Overflow用户
提问于 2010-05-24 14:01:43
回答 2查看 1.6K关注 0票数 0

我很难弄清楚我需要在测试中模拟什么,以显示UrlHelper.RouteUrl()返回了正确的URL。它可以工作,但我希望有正确的测试覆盖率。控制器方法的核心如下所示:

代码语言:javascript
复制
var urlHelper = new UrlHelper(ControllerContext.RequestContext);
return Json(new BasicJsonMessage { Result = true, 
   Redirect = urlHelper.RouteUrl(new { controller = "TheController", 
   action = "TheAction", 
   id = somerecordnumber }) });

测试结果对象非常简单,如下所示:

代码语言:javascript
复制
var controller = new MyController();
var result = controller.DoTheNewHotness());
Assert.IsInstanceOf<JsonResult>(result);
var data = (BasicJsonMessage)result.Data;
Assert.IsTrue(data.Result);

result.Redirect总是空的,因为控制器显然对路由一无所知。我必须对控制器做什么才能让它知道?正如我所说的,我知道当我练习生产代码时,它可以工作,但我想要一些测试保证。谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

发布于 2011-11-01 03:49:07

在我看来,您是在尝试测试调用UrlHelper的一些自己的代码,而不是测试框架的UrlHelper本身的功能。如果是这样的话,这个答案ASP.NET MVC: Unit testing controllers that use UrlHelper对我来说很有效。

票数 2
EN

Stack Overflow用户

发布于 2010-05-24 14:11:57

UrlHelper.RouteUrl()不是一个框架方法吗?测试是.NET团队的责任,不是你的!

您可能想要对您的路由配置进行单元测试。This question确实很旧(MVC Beta1),但答案可能仍然有效。Phil HaackRouting Debugger总是在那里等着你,如果这还不够,在谷歌上还有很多其他的选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2895049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档