【问题标题】:Fixing Branch Coverage Sonar issue修复分支覆盖声纳问题
【发布时间】:2015-11-10 07:57:42
【问题描述】:

我正在尝试运行声纳,我将我的代码样本作为 sampleClass 来修复分支覆盖问题:

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

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

但是117这个数字在经过多次试验后无法改变。 我必须做些什么来解决这个问题?

【问题讨论】:

    标签: java sonarqube


    【解决方案1】:

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

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

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

    如果您错过了其中一项测试,则说明您没有覆盖一个分支。

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

    【讨论】:

    • 非常感谢您的回复,我已经尝试覆盖分支但数字仍然 117 没有进展。我不知道是什么问题。
    • 问题没有改变。如果您使用声纳(或类似的东西),它会指出您没有覆盖所有分支的位置。找出你还没有测试过的那些
    • 编写三个测试相同的测试并不能真正增加覆盖率,它只是测试相同。确保检查所有可选语句中的差异
    猜你喜欢
    • 2013-06-03
    • 2015-03-11
    • 2013-09-26
    • 2018-09-27
    • 2016-02-25
    • 2019-04-23
    • 2011-08-10
    • 2013-10-13
    • 1970-01-01
    相关资源
    最近更新 更多