代码覆盖率工具ECLEmma有一个奇怪的问题:
对于类(class)MyFirstLogger
我写了测试类MyFirstLoggerTest
:
请注意我在 MyFirstLoggerTest
中写道我希望得到一个 NullPointerException 的测试方法,只是为了通过 else if
-案例在 setLogger
-MyFirstLogger
中的方法哪里logger
为空且 NullPointerexception
被抛出。
但是为什么这个 Twig 还是黄色而不是绿色呢?这是一个错误吗?
最佳答案
这种行为很常见:
testNullableGetLogger
被读取,因为 Emma(但和大多数其他代码覆盖工具)将一行标记为成功(如果已完成)。由于它抛出异常 (NullPointerException
),因此该行(以及该方法!)无法完成,因此呈红色。else if (logger == null)
为黄色,因为 emma 在代码中添加了隐式 else 情况。在您的情况下,永远不能输入 else 情况,因为 if 情况涵盖了记录器上的所有状态。要使该行变为绿色,请将其替换为else
。
关于java - Eclipse 中 ECLemma 代码覆盖工具的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29997577/