当你进行单元测试时,断言是多余的吗?

Kla*_*aim 4 language-agnostic unit-testing assert

我还没有用它来编写单元测试,我想在一个完整的小工具框架上做这个(使它更安全使用).这样,我肯定会学到更多关于单元测试的知识,而不是我到目前为止学到的东西.

然而,我真的习惯于系统地添加断言,我发现有一个上下文可以确定(在最终版本中被删除).主要是作为函数实现的前提条件,每次我检索必须正确的信息(比如着名示例的C/C++指针有效性).

现在我问:当你进行单元测试时,断言是多余的吗?因为当你测试一些代码的行为时它看起来很冗余; 但同时它与执行环境不同.

我应该两个都做吗?

Rae*_*ald 6

检查前置条件的断言可以帮助检测和定位集成错误.也就是说,虽然单元测试表明方法在正确使用(调用)时正确运行,但检查前置条件的断言可以检测到对方法的错误使用(调用).使用断言会导致错误代码快速失败,这有助于调试.

  • 断言比这更通用 - 它们可以用于在代码中的任何地方*指定不变量*,而不仅仅是前提条件. (3认同)