是否有可能让Jacoco停止抱怨错过“其他”陈述?

时间:2014-05-08 08:32:02

标签: java jacoco

虽然不是一个真正的问题,如果有一个设置可以改变它,那就太好了。

基本上,我正在使用一堆表单字段,这些字段要么已上传,要么没有。

我检查上传的字段是否为空,如果没有,我会用它做点什么。

如果字段 为空...则没有。什么都没发生,它可以保持为空。这适用于数据库插入,其中允许某些字段为空。

这是一些伪代码:

if(randomfield != null) {
    //do something with randomField before insertion in to the DB.
}

Jacoco不断地给我一个消息,它无法检查另一种可能性,这意味着它抱怨没有别的陈述。但是永远不会有一个。有可能让Jacoco停止检查这个,如果是的话,我在哪里可以阅读它?谷歌搜索没有帮助。

1 个答案:

答案 0 :(得分:3)

Jacoco是一种覆盖工具。它检查代码的每个可能分支是否已被覆盖。它没有抱怨没有其他声明。它抱怨的是你从未执行过randomField为空的代码。

如果randomField为null,则其他代码可能会中断。你的测试没有测试这种可能性,这就是jacoco警告你的。这是一个例子:

String foo = null;
if(randomfield != null) {
    foo = randomField;
}
System.out.println(foo.toLowerCase());

如果您使用randomField "hello"测试代码,一切都会好起来的。但是如果randomField为null,那么这将导致不希望的NullPointerException。这是一个通过使用null randomField测试代码可以检测到的错误。由于你没有这样做,jacoco抱怨。