是否使用断言?[已关闭]

2022-09-02 19:13:27

这不是一个真正的“问题”,所以我把它变成CW。

assert

关键字很棒!

它应该让你对你写的代码更有信心,但是,直到今天当我创建一个小测试类(<20行)时,我意识到自从它被引入以来从未使用它。

哎呀!我几乎不使用记录器,这确实非常有用,但直到今天我才意识到我不使用断言。

是否使用断言?如果不是,原因是什么?


答案 1

早在90年代,我就被教导要使用很多断言,它们很有意义。这是很好的防御性编码。

但是,我认为这已经被单元测试所取代,单元测试实际上强制运行代码并告诉它在哪里被破坏。调试断言需要有人实际运行调试代码并查看 UI 或日志。单元测试可以自动执行此操作。


答案 2

我一直在使用它们。它们是练习“早期崩溃”哲学的好方法,最好是必须解决断言失败的原因,而不是必须处理不良/损坏的输出。

问题是你必须让它成为一种习惯。我很少看到它的任何中间地带,人们要么不习惯它,几乎从不使用它们,要么人们使用它们,它们在整个代码中都乱扔垃圾。你只需要进入注意“哦,嘿,我在这里隐含地假设了一些东西,让我明确确认它'断言(假设)'”


推荐