【发布时间】:2012-02-24 09:06:33
【问题描述】:
我们刚刚开始使用 ASP.NET MVC3,我们想要对我们的控制器进行单元测试。
这是我的控制器功能:
[HttpGet]
Public ActionResult Action()
{
Guid Id = Guid.Empty;
string[] UrlSegments = Request.Url.Segments;
Guid.TryParse(UrlSegments[UrlSegments.Count() - 1], out Id);
if(Id == Guid.Empty)
return RedirectToAction("ErrorPage");
}
我想测试这个控制器功能。我已经在我的 global.asax 文件中放置了匹配的路由来匹配这个功能。基本上我正在尝试从 URl 中检索 guid,如果它不好,则将他带到错误页面。 HttpRequestBase 类 URl 没有设置器,所以我很困惑如何测试这个功能?
【问题讨论】:
-
我将“if(Id == Guid.Empty)”更改为“if(activationId == Guid.Empty)”,希望这是要比较的内容。
-
谢谢...我清理了 id 的东西
-
什么不工作以及如何工作?无论如何,我都会用 UrlSegments.Length 替换 UrlSegments.Count()...
-
我想用mock来测试这个功能。我怎样才能做到这一点?我不知道如何使用“localhost/action/guid”之类的 URl 创建请求对象
-
好奇你为什么要检查 url 段而不是让绑定工作来填充它(或自定义活页夹)?
标签: c# asp.net-mvc asp.net-mvc-3 testing