asp.net-mvc – TDD:在ASP.NET MVC 3中测试DataAnnotations的最
发布时间:2020-12-15 23:31:17 所属栏目:asp.Net 来源:网络整理
导读:我正在使用ASP.NET MVC 3和DataAnnotations参与项目.我们在ViewModels类中有DataAnnotations. 您如何为这些验证编写单元测试? ViewModel示例: public class AchievementVM{ [Required(ErrorMessage = "The title field is required.")] [StringLength(100,
我正在使用ASP.NET MVC 3和DataAnnotations参与项目.我们在ViewModels类中有DataAnnotations.
您如何为这些验证编写单元测试? ViewModel示例: public class AchievementVM { [Required(ErrorMessage = "The title field is required.")] [StringLength(100,ErrorMessage = "Title must be 100 characters or less.")] public string Title { get; set; } } 谢谢! 解决方法
.NET框架配有一个可以独立运行验证逻辑的
Validator类.要测试的代码可能如下所示:
var achievement = new AchievementVM(); var context = new ValidationContext(achievement,serviceProvider: null,items: null); var results = new List<ValidationResult>(); var isValid = Validator.TryValidateObject(achievement,context,results,true); Assert.IsTrue(results.Any(vr => vr.ErrorMessage == "The title field is required.")); achievement.Title = "Really really long title that violates " + "the range constraint and should not be accepted as " + "valid input if this has been done correctly."; Validator.TryValidateObject(achievement,true); Assert.IsTrue(results.Any(vr => vr.ErrorMessage == "Title must be 100 characters or less.")); 无需自定义实用程序来搜索属性的存在. Validator类为您的工作,并填充与MVC基础结构相同的ValidationResult集合. 这个方法的一个很好的写法可以在K. Scott Allen’s blog上找到. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 按钮单击在更新面板中不起作用
- asp.net – 基类包含字段’X’,但其类型(System.Web.UI.Scr
- asp.net – 为什么DataBind()方法是必要的?
- asp.net – HttpError iis config在添加默认路径时抛出异常
- ASP.NET Core文件上传与下载实例(多种上传方式)
- 在ASP.Net动态数据中使用Computed Property作为DisplayColu
- asp.net-mvc – ASP.Net MVC不显眼的日期范围验证
- 如何写一段死锁代码
- asp.net – 单元测试Web服务 – HttpContext
- asp.net – 高级:HttpModule Init()方法在应用程序的生命中
推荐文章
站长推荐
- asp.net – dbo.aspnet_Users和dbo.aspnetUsers之
- asp.net-mvc – CSS / Javascript缩小和捆绑在MV
- iis-7 – 在iis7上设置经典的asp站点,站点运行但
- asp.net – 在某些页面上禁用ScriptManager
- ASP.NET MVC – 单元测试,在不使用任何模拟框架的
- asp.net-mvc – Azure上的MVC4部署问题
- 在 Xunit 中使用依赖注入
- IdentityServer4身份认证授权入门-----客户端凭据
- asp.net – 实体关系图/实体数据模型(.edmx)中的
- asp.net-mvc – ASP.NET MVC忽略所有url结尾的“
热点阅读