java - 修复分支覆盖 Sonar 问题

标签 java sonarqube

我正在尝试运行 Sonar ,并使用我的代码样本来修复分支覆盖问题:

问题是 单元测试还需要覆盖 117 个分支才能达到 65.0% 分支覆盖率的最低阈值。

我试图让我的测试用例覆盖示例类中的许多分支。

但是117这个数字经过多次尝试都无法改变。 我必须做什么才能解决这个问题?

最佳答案

您需要添加更多测试。例如:

@Test
public void testThis(){
  if ( getBooleanA() || getBooleanB()){
    assertTrue(getBooleanA() != getBooleanB());
    }
  else{
    assertTrue(getBooleanA() == getBooleanB());
  }
}

在这里,您需要为以下情况提供测试: 1. boolean 值 A 和 B 均为 false 2. boolean 值A和B都为true 3. boolean 值A为真, boolean 值B为假 4. boolean 值A为假, boolean 值B为真

如果您错过了其中一项测试,则说明您尚未涵盖某个分支。

编辑:很明显(或者应该是),else block 中的断言是没有意义的,但我只是添加了它,以防它没有返回 boolean 值,而是返回 int,以显示它是多么容易是有一个需要覆盖的新分支。

关于java - 修复分支覆盖 Sonar 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33625234/

相关文章:

java - 创建 jar 文件时注意依赖关系

java - 如何在接受 `Derived` 的重写方法中使用类型 `Base` 的参数?

msbuild - 如何解决sonarqube中的代码行限制问题?

SonarQube 生态系统升级(SonarQube 和 SonarLint)

java - 当sonar对webapp进行分析时,它只是分析java代码吗?

java - hibernate 是否有任何序列化/反序列化 json(或 xml)列并将其转换为真实模型属性的东西?

java - powershell invoke-expression java程序获取状态

java - Sonarqube 安全报告 : OWASP Top 10

java - 查找字符串中的各种字符

java - 避免 SonarQube 空分配规则