nunit – 单元测试时不会自动验证模型
发布时间:2020-12-16 09:59:20 所属栏目:asp.Net 来源:网络整理
导读:这是控制器动作的一部分: [HttpPost]public ActionResult NewComplaint(Complaint complaint){ if(!ModelState.IsValid) { // some code } // some more code...} 运行应用程序时,甚至在调用if语句之前会自动验证模型.但是,在尝试对此代码进行单元测试时,不
这是控制器动作的一部分:
[HttpPost] public ActionResult NewComplaint(Complaint complaint) { if(!ModelState.IsValid) { // some code } // some more code... } 运行应用程序时,甚至在调用if语句之前会自动验证模型.但是,在尝试对此代码进行单元测试时,不会发生自动验证. 如果我使用FormCollection并调用TryUpdateModel,则会进行验证,但我不想使用它. 我发现在if语句之前调用TryValidateModel(model)可以很好地解决问题;只需要一行额外的代码.我宁愿摆脱它??. 任何想法为什么在单元测试时不会发生自动验证但在应用程序运行时发生? 编辑:忘了提,我正在使用ASP.NET MVC3 RC1,我正在嘲笑控制器的HTTPContext对象,如果这有任何区别 解决方法
在模型绑定期间进行验证(并且TryUpdateModel执行模型绑定).
但我认为问题在于您尝试测试的是MVC框架(即在调用操作方法之前进行验证的事实).你不应该测试. 您应该假设该部分正常工作(因为我们对其进行了广泛测试)并且仅测试您的应用程序代码.因此,在这种情况下,您需要模拟的唯一事情是ModelState.IsValid的返回值,您可以通过手动添加验证错误来实现: ModelState.AddModelError("some key","some error message") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – DbFunctions.TruncateTime在ASP .NET CORE中的L
- .net – 制作类似TinyURL.com的简短网址
- asp.net-mvc-4 – 无法从程序集’itextsharp,Version = 5.5
- asp.net – 如何绑定一个MemoryStream到asp:图像控件?
- asp.net – 命名空间’System’中不存在类型或命名空间’Li
- asp.net – 使用CRC的较短GUID
- asp.net-mvc – ASP.NET的恶意抓取工具拦截器
- asp.net-mvc-4 – Azure Blob 400创建容器时的错误请求
- asp.net-mvc-2 – 电子商店中类别名称的MVC 2.0动态路由
- IIS部署asp.net mvc网站的方法
推荐文章
站长推荐
- asp.net – asp:RequiredFieldValidator使用空字
- asp.net-mvc – 用于服务应用程序的Microsoft Gr
- asp.net-mvc – 一个ASP.NET MVC验证器,用于确保
- asp.net-web-api – 当请求具有不受支持的Conten
- 单元测试 – Stubbing或Mocking ASP.NET Web API
- asp.net-mvc – 仅在MVC4 BundleConfig中缩小脚本
- 将二进制文件转换为Base64字符串
- 使用ASP.NET C#中的文件填充树视图
- asp.net-mvc – MVC中的模型含义
- asp.net – 来自ASHX处理程序的Sever.Transfer,H
热点阅读