单元测试——我应该测试参数验证代码吗?



我总是验证参数。我只是从单元测试开始。我是否应该添加测试来验证是否为无效参数引发异常?

例如,假设一个整型参数应该在3..5的范围内。然后,我有一个验证,如果它低于3或高于5,就抛出一个超出范围的异常,但现在我必须编写额外的两个又两个测试用例——两个测试用例验证异常是在值低于3和大约5时抛出的,另一个测试用例验证当所有参数都有效时不会抛出异常。

我很纠结-"魔鬼和天使在我的肩膀上"的情况:)。"没有人因为选择ibm而被解雇"的逻辑是:"有人会传递一个无效的参数。您已经投入了精力,通过验证参数来验证这是否得到了处理。多花点时间,为每个参数投入一些测试用例,以验证您的参数验证是否有效。"

但现实的逻辑是——"这是累赘。验证代码本身只是保险。在验证上添加测试用例是浪费金钱,增加了另一层保险"。

我该怎么办?

所以,我的问题是:"我是否应该为每个公共方法的每个参数编写测试用例来验证该参数验证代码确实有效? "

是的,你应该。这正是一种非常适合单元测试的场景:一个带有几个可能输入的小操作。

说你必须对每个参数都这样做是不同的:只对那些执行了一些逻辑的参数这样做。

理想情况下,您希望每个需求都反映在测试中:"如果字符串为null,抛出一个argumentexception"应该有一个相应的单元测试。

我同意这些测试是琐碎的编写,但他们会给你很多保证,你的代码的基础做他们应该做的。当然,如果你只是复制它并在需要的地方改变一些值,它们也会写得非常快。

验证代码是保险,但它是保险的重要组成部分:如果验证不起作用,您的程序就进入了未指定的领域。确保保险有效。

最新更新