代码改变世界

Junit中error和failure区别

2008-01-21 16:14  Jeff  阅读(4163)  评论(2编辑  收藏  举报
JUnit 中有两种错误类型,一个是 failure,另一个是 error。这两者之间的差别很微妙,但是我们如果能够理解这种差别的话,对我们使用 JUnit 将会非常有帮助的。

通常来说,failure 表示所测试的产品代码(production code)有问题,也就是受测的产品代码没有正确的实现设计上所要求的功能。这个时候我们需要对产品代码进行检查、修改,使得它的行为能够符合设计说明书上所预想的情况。而当报告 error 时,则可能是测试代码本身有问题,或者系统的运行环境出现了状况。比方说测试代码中所期望的值(expected value)是错误的——也就是说有可能产品代码所返回的结果是正确的,但是测试代码期望了一个错误的答案;也可能是磁盘已满、网络中断等等外部环境失败所带来的影响。

一般情况下,如果 JUnit 测试后报告有若干 failuer、若干 error,我们应该首先查找产生 error 原因,并且加以修复。在修复 error 之后,重新运行 JUnit 进行测试,如果没有出现 error 的话,我们在着手开始调查、修复 failure