我总是验证论点。我刚开始进行单元测试。我是否应该添加测试来验证是否为无效参数引发了异常?
例如,假设一个整数参数应该在3..5的范围内。然后我有一个验证,如果它低于3或高于5,则抛出超出范围的异常,但现在我必须编写额外的两位一位测试用例 - 两个用于验证是否抛出异常值低于3和大约5,以及一个测试用例,它验证当所有参数都有效时不会抛出异常。
我被撕裂了 - “我的肩膀上的魔鬼和角度”情况:)。 “没有人因选择I.B.M而被解雇”逻辑说:“有人会传递一个无效的论点。你已经投入了精力来验证这是通过验证参数来处理的。加倍努力并为每个参数投入一些测试用例来验证你的参数验证是否有效。 “
但是脚踏实地的逻辑说 - “这是重量级的。验证代码本身只是保险。在验证上添加测试用例是浪费金钱,增加了另一层保险”。
我该怎么办?
所以,我的问题是:“我是否应该为每个公共方法的每个参数编写测试用例来验证参数验证代码是否确实有效?”
答案 0 :(得分:3)
是的,你应该。这正是完全适合单元测试的场景:具有少量可能输入的小型操作。
要说你必须为每个参数执行此操作,尽管是不同的:只对那些对其执行某些逻辑的人执行此操作。
理想情况下,您希望每个需求都反映在测试中:"如果字符串为null,则抛出一个参数并且#34; 应该有相应的单元测试。
我同意这些测试很容易编写,但是它们会让你很好地保证代码的基础知识可以做他们应该做的事情。如果您只是复制它并在需要时更改一些值,它们也会非常快速地编写。
验证码是保险,但它是保险的重要组成部分:如果验证无效,您的程序将进入未指定的区域。确保保险有效。