目前正在开发一个 MVC 应用程序,该应用程序有一个包含 12-14 个字段的注册表单,用户必须填写这些字段才能注册到我们的站点。关于用户输入有两个要求,令人惊讶的是,他提供了一个唯一的电子邮件和一个唯一的用户名,这些在我们的数据库中仍然不存在。我已经对这些验证进行了测试,其余的用户输入正确性留给模型中的验证符号,例如日期格式和密码强度要求等,如下所示:
[Required(ErrorMessage = "Your password is required")]
[StringLength(20, MinimumLength = 8, ErrorMessage = "Must be between 8 and 20 characters")]
[RegularExpression(@"(?=^.{8,}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s)[0-9a-zA-Z!@#$%^&*()]*$", ErrorMessage = "Needs to have lowercase, uppercase and a number")]
[Display(Name = "Password")]
public string Password { get; set; }
如果不测试这些符号,我想我需要写的关于这个逻辑的唯一测试是那些关于验证用户名和电子邮件唯一性以及向数据库添加记录的测试,我已经拥有了,但我担心只有 3 个测试可能太少了。虽然我认为(并且希望,老实说)我不需要对开箱即用的符号验证进行测试,但我想从更有经验和不那么懒惰的人那里听到这一点:) 另外,如果你能指出关于用户注册时还应该测试什么的一些一般规则,那就太好了。