我正在尝试运行 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/