JUnit 中有两种错误类型,一个是 failure,另外一个是 error。这二者之间的差异很微妙,可是咱们若是可以理解这种差异的话,对咱们使用 JUnit 将会很是有帮助的。
一般来讲,failure 表示所测试的产品代码(production code)有问题,也就是受测的产品代码没有正确的实现设计上所要求的功能。这个时候咱们须要对产品代码进行检查、修改,使得它的行为可以符合设计说明书上所预想的状况。而当报告 error 时,则多是测试代码自己有问题,或者系统的运行环境出现了情况。比方说测试代码中所指望的值(expected value)是错误的——也就是说有可能产品代码所返回的结果是正确的,可是测试代码指望了一个错误的答案;也多是磁盘已满、网络中断等等外部环境失败所带来的影响。
通常状况下,若是 JUnit 测试后报告有若干 failuer、若干 error,咱们应该首先查找产生 error 缘由,而且加以修复。在修复 error 以后,从新运行 JUnit 进行测试,若是没有出现 error 的话,咱们在着手开始调查、修复 failure。