我应该测试用户注册的内容?

时间:2013-06-24 13:24:15

标签: asp.net-mvc unit-testing

目前正在开发一个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; }

在没有测试这些符号的情况下,我想我需要写的关于这个逻辑的唯一测试是关于验证用户名和电子邮件唯一性以及向db添加记录的那些,我已经拥有了,但我担心只有3个测试可能是太少了。虽然我认为(并且希望,老实说)我不需要对开箱即用的符号验证进行测试,但我希望从更有经验且不那么懒惰的人那里听到:)同样,如果你能指出的话关于用户注册时应该测试什么的一些一般规则,这将是很好的。

2 个答案:

答案 0 :(得分:1)

如果你有一天决定覆盖RegularExpression课程,你会知道你的考试是否失败。由您决定在哪里画线。我会说这是一个小小的努力。

答案 1 :(得分:1)

首先,不要仅仅为了编写单元测试而编写单元测试。通常情况下,他们最终没有用处,也没有真正证明什么。

这些是我通常会为其编写测试的东西。

  • 业务要求。业务已经要求这些,所以你最好确定他们的工作。
  • 正常流量/使用量。通用测试证明它的行为符合您的要求。
  • 边缘情况。它们可能不会经常发生,但会通过测试来覆盖它。
  • 错误。需要证明坏男孩是历史。
  • 培根。总是测试培根。