asp.net-mvc – 使用RedirectToAction单元测试ASP.NET MVC 2中的
发布时间:2020-12-15 18:33:29 所属栏目:asp.Net 来源:网络整理
导读:我有一个控制器,在一个实体上实现一个简单的添加操作,并重定向到“详细信息”页面: [HttpPost]public ActionResult Add(Thing thing){ // ... do validation,db stuff ... return this.RedirectToActionc = c.Details(thing.Id));} 这很好用(使用MvcContr
我有一个控制器,在一个实体上实现一个简单的添加操作,并重定向到“详细信息”页面:
[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-4 – 如何在一个Web应用程序中最好地组合Web A
- asp.net – 开始日期 – 使用Compare Validator Misfires验
- asp.net-mvc – 使用ASP.NET MVC 3.0进行日期验证
- 要监控已部署的ASP.NET Web应用程序的关键性能指标是什么?
- 将ASP.Net System.Net.Mail设置移动到Web.config
- 难道调用ThreadPool.QueueUserWorkItem()的时候,真是必须
- asp.net – 类库中的dotnet5.4和net451是什么?
- 发布asp.net网站给出“对象引用未设置为对象的实例.”错误
- asp.net-mvc – 跨应用程序进行表单身份验证的ServiceStack
- ASP.NET Webforms中的异常处理
推荐文章
站长推荐
- asp.net-mvc – 从azure云存储下载大文件的最佳方
- asp.net – 添加runat =“server”会改变布局的行
- asp.net-mvc-3 – asp.net mvc 3中的自定义错误页
- asp.net-mvc – ASP.NET mvc 4控制器参数始终为空
- ASP.NET表单认证在iPad上显示登录页面
- asp.net中machineKey的作用
- 使用Asp.Net Core Web API文件上传文件始终为nul
- asp.net – web.config allowDefinition = Machi
- asp.net-mvc – 如何在Kendo模板中动态设置列
- asp.net-mvc – 编译错误“无法在Web部署项目中加
热点阅读