unit-testing - 参数异常应该进行单元测试吗?

标签 unit-testing exception design-by-contract

我知道这个问题与之前发布的其他问题非常相似,但我想以适当的方式讨论这个话题。

您认为应该对“明显”异常进行单元测试吗?

对于明显的异常,我的意思是例如由于空参数或空字符串或负数而导致的异常,在这种情况下,我们单元的业务逻辑使我们很明显,这些异常总是在我们的方法开始时抛出,在任何其他异常之前手术。

换句话说,我说的是在违反类契约的最简单部分后应该抛出的异常。

谢谢您的意见。

最佳答案

绝对地。你称它们为“显而易见的”,但记住验证先决条件并没有什么明显的。事实上,我在职业生涯中看到的大部分代码都没有采取这种明显的步骤来防止以后出现困惑。

虽然您在为公共(public)消费、重用等而编写的库代码中经常看到这一点,但大多数开发人员似乎常常忘记将此类检查放入自己的代码中。在测试驱动的环境中,对此类条件进行测试会迫使开发人员正确验证其公共(public)方法上的输入参数。

说句公道话……我有机会再写一个测试并看到绿色条,我很高兴。 :)

关于unit-testing - 参数异常应该进行单元测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3548746/

相关文章:

c# - 接口(interface)类型的代码契约类的命名约定

c - 如何在编译时执行接口(interface)契约(在 C 中)?

unit-testing - Angular 2 单元测试 : Custom Pipe error The pipe could not be found

java - 在 toString 方法中将对象转换为特定数据类型

python - 如何通过处理错误来完成流程?

SQL 性能 - 更好地插入和引发异常或检查是否存在?

racket - (或/c#f <合约>) 与 <合约>

java - 在 ANT 构建工具中设置系统变量并使用 Syste.getEnv ("ABC_HOME"在 Java 中读取它)

java - 我在哪里可以调查真实世界项目中的 junit 测试?

c# - CallbackOnCollectedDelegate 在 Application.Run(new Form1())