SonarQube 在空支票上说"Covered by tests (3 of 4 conditions)"



我对FileInputStream对象进行了空检查,SonarQube在此块的第一行说:

if (fileInputStream != null) {
    try {
        fileInputStream.close();
    } catch (IOException ioe) {}
}

仅(我引用):"由测试涵盖(3 个条件中的 4 个)"

这个世界上怎么会有4个条件?我只能看到 2 个条件:对象是否为空。任何人都可以发布其他 2 个条件吗?我使用java 8。有没有办法取悦声纳?解决方法?什么。

更新:我删除了 if 语句并将整个 if 块替换为

org.apache.commons.io.IOUtils.closeQuietly(fileInputStream);

检查空值并使声纳满意。

从 Sonar 7.0 和 Jacoco 6.5 开始,现在可以将 try with resources 用作比

org.apache.commons.io.IOUtils.closeQuietly(fileInputStream);

我想知道close()和final()方法?

最新更新