断言式测试
2004年8月3日
这是一个朋友的朋友的故事。我相信它一定是真的,至少在某个地方。
一个项目开始做大型系统。它被外包给一家大型软件/咨询公司——我知道你听说过。他们为竞标组建了一支令人印象深刻的团队,自然地,他们将所有这些团队成员都换成了很多初级人员来进行实际工作。所有标准程序。
有趣的是,该公司非常重视使用JUnit进行大量测试。每个公共方法都必须有JUnit测试。他们自豪地向客户展示了所有测试和绿色的进度条。
然而,JUnit测试中没有任何断言。
我不知道他们是否对这个项目进行了代码覆盖率分析,但当然你可以这样做,并且可以达到100%的代码覆盖率——这也是你必须谨慎解读代码覆盖率数据的原因之一。[1]
注释
1: 虽然无断言测试大多是笑话,但它并非完全无用。正如卡洛斯·维莱拉提醒我的那样,一些故障确实会通过代码执行显现出来,例如空指针异常。