asp.net-mvc – 使用RedirectToAction单元测试ASP.NET MVC 2中的控制器
发布时间:2020-05-27 22:58:02 所属栏目:asp.Net 来源:互联网
导读:我有一个控制器,在一个实体上实现一个简单的添加操作,并重定向到“详细信息”页面: [HttpPost]public ActionResult Add(Thing thing){ // ... do validation, db stuff ... return this.RedirectToActionc = c.Details(thing.Id));} 这很好用(使用
|
我有一个控制器,在一个实体上实现一个简单的添加操作,并重定向到“详细信息”页面: [HttpPost]
public ActionResult Add(Thing thing)
{
// ... do validation,db stuff ...
return this.RedirectToAction<c => c.Details(thing.Id));
}
这很好用(使用MvcContrib程序集的RedirectToAction)。 当我单元测试这个方法,我想访问从Details操作返回的ViewData(所以我可以得到新插入的东西的主键,并证明它现在在数据库中)。 测试有: var result = controller.Add(thing); 但是这里的结果是类型:System.Web.Mvc.RedirectToRouteResult(它是一个System.Web.Mvc.ActionResult)。它还没有执行“详细信息”方法。 我已经尝试在返回的对象上调用ExecuteResult,传递一个嘲笑的ControllerContext,但框架并不满足于嘲笑对象中缺少细节。 我可以尝试填写细节等等,但是我的测试代码比我测试的代码更长,我觉得我需要单元测试单元测试! 我在测试哲学中缺少某些东西吗?当我不能得到返回状态时,如何测试这个动作? 解决方法我正在使用MVC2 RC2,而rmacfie的答案对我来说并不是很有用,但是让我走上了正轨。我或者我错误地设法在我的测试中做到这一点: var actionResult = (RedirectToRouteResult)logonController.ForgotUsername(model);
actionResult.RouteValues["action"].should_be_equal_to("Index");
actionResult.RouteValues["controller"].should_be_equal_to("Logon");
不知道这是否会帮助某人,但可能会节省你10分钟。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 从Asp.net MVC发送HTML电子邮件的最佳方式是
- asp.net-mvc-3 – 使用ViewData将字符串从Controller传递到
- asp.net – __doPostBack在DotNetNuke网站上未定义为IE 10
- 如果我在ASP.NET网页中打开数据库连接会发生什么
- asp.net-mvc – 如何避免使用MVC的标签汤?
- asp.net-mvc – Paypal沙箱直接付款内部错误10001超时处理请
- ASP.NET MVC和SQL Server报告服务
- asp.net-mvc-5 – 什么是最新的ASP .NET MVC版本?
- asp.net-mvc-4 – 如何在asp.net mvc应用程序中使用Gmail S
- asp.net – 什么是LiteralControl?为什么使用
推荐文章
站长推荐
- asp.net-mvc – 防止加载部分视图
- ASP.Net Response.Redirect不能在Application_Er
- asp.net 将一个图片以二进制值的形式存入Xml文件
- 如何获取asp.net c#的文章数据
- ASP MVC C#:是否可以将动态值传递给属性?
- asp.net-mvc – Elmah基本设置问题/问题
- asp.net-mvc – 今天在.NET中实现RESTful架构的最
- asp.net-core-mvc – 如何从任何ASP .Net Core类
- asp.net-mvc – ASP.NET MVC 5为隐藏输入渲染不同
- ASP.NET – 如何有效地使用设计模式而不需要过度
热点阅读
