java - Eclipse 中 ECLemma 代码覆盖工具的奇怪行为

标签 java eclipse junit code-coverage eclemma

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

对于类(class)MyFirstLogger我写了测试类MyFirstLoggerTest :

enter image description here

enter image description here

请注意我在 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/

相关文章:

java - 我的android应用在启动时崩溃

java - 正则表达式 Junit 测试

java - 如何检查数组是否是二维数组中的元素之一

java - 在不使用断言的情况下对此方法进行 Junit 测试?

java - 向 Jersey multipart-form-data 函数添​​加注释会破坏它

java - Android 9.0 wifi热点API

java - 如何在此代码部分中的 ajax 成功调用中显示隐藏的 div

java - 同时从两个不同线程插入/更新实体

java - 使用 ApacheCommnonsIO 的方法未处理的异常类型 IOEsxception

java - 在 Eclipse 3.6.1 上安装 AspectJ 时遇到问题