1

代码覆盖率工具ECLEmma有个奇怪的问题:

对于MyFirstLogger我写了 testclass的课程MyFirstLoggerTest

在此处输入图像描述

在此处输入图像描述

请注意,我在一个测试方法中写了MyFirstLoggerTest一个我希望得到一个 NullPointerException 的地方,只是为了通过- 方法中else ifsetLogger-case 在MyFirstLogger哪里logger是 null 并且 aNullPointerexception被抛出。

但是为什么这个分支还是黄色而不是绿色呢?这是一个错误吗?

4

1 回答 1

2

这种行为很常见:

  • testNullableGetLogger被读取是因为 Emma(但和大多数其他代码覆盖工具)如果完成,则将一行标记为成功。由于它抛出异常 ( NullPointerException) 行(和方法!)无法完成,因此是红色的。

  • else if (logger == null)是黄色的,因为 emma 在代码中添加了隐式 else 情况。在您的情况下,永远无法输入这种 else 情况,因为 if 情况涵盖了记录器上的所有状态。要获得绿色线,请将其替换为else.

于 2015-05-02T06:31:25.417 回答