Java 有没有可能让Jacoco停止抱怨失踪;否则";声明?

Java 有没有可能让Jacoco停止抱怨失踪;否则";声明?,java,jacoco,Java,Jacoco,虽然这不是一个真正的问题,但如果有一个可以改变这一点的设置,那就太好了 基本上,我正在处理一堆表单字段,要么上传,要么不上传 我检查上传的字段是否为空,如果不是,我会对其进行处理 如果字段为空。。。那就什么都没有了。没有任何事情发生,它可以保持为空。这是用于数据库插入,其中某些字段允许为空 下面是一些伪代码: if(randomfield != null) { //do something with randomField before insertion in to the DB. }

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

基本上,我正在处理一堆表单字段,要么上传,要么不上传

我检查上传的字段是否为空,如果不是,我会对其进行处理

如果字段空。。。那就什么都没有了。没有任何事情发生,它可以保持为空。这是用于数据库插入,其中某些字段允许为空

下面是一些伪代码:

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

Jacoco不断向我传达信息,它无法检查其他可能性,这意味着它在抱怨没有其他声明。但永远都不会有。有没有可能让Jacoco停止检查这一点?如果有,我在哪里可以看到?谷歌搜索没有任何帮助。

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

如果randomField为null,则代码的其余部分可能会中断。您的测试并没有测试这种可能性,而这正是jacoco警告您的。下面是一个例子:

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

如果您使用
randomField
作为
“hello”
测试代码,一切都会正常进行。但是,如果
randomField
为null,则这将导致意外的NullPointerException。这是一个可以通过使用空随机字段测试代码来检测的bug。因为您没有这样做,jacoco正在抱怨。

好吧,但正如我所说的:如果字段为空,就不会发生任何事情。它可以作为null(我可能应该解释一下)插入到数据库中,没有问题,这就是将要发生的一切。所以我有两种情况。一个是它不是空的,我必须在它被插入之前对它做些什么,另一个是它是空的,在它被插入之前没有任何额外的事情发生。这是仅有的两个可能的事件。Jacoco抱怨没有检查第二种可能性,但那是因为没有必要检查。所以我希望Jacoco停止告诉我这件事。让它停止抱怨的最好方法是编写一个测试,其中randomField为null,它检查将null插入数据库是否正常工作。或者认为这不值得测试,不再关心这个班的分支覆盖率。无论如何,100%覆盖率的目标是不现实的。