如何修复此?
对于我的程序Jacoco中的以下行显示:"错过了2个分支中的1个"
if(ia.length() < i+1){
在以下行,我会得到:"错过了4个分支中的1个"
if(ia.length() <= i+1 && ib.length() <= i+1){
整个代码:
public static int convertBits(int a, int b) {
String ia = Integer.toBinaryString(a);
String ib = Integer.toBinaryString(b);
int s = 0;
for(int i = 0;;i++){
char a1 = '0';
char a2 = '0';
if(ia.length() < i+1){
a1 = '0';
}else{
a1 = ia.charAt(ia.length() - i - 1);
}
if(ib.length() < i+1){
a2 = '0';
}else{
a2 = ib.charAt(ib.length() - i - 1);
}
if(a1 != a2){
s++;
}
if(ia.length() <= i+1 && ib.length() <= i+1){
break;
}
}
jacoco是一种代码覆盖工具,可在执行后生成覆盖范围报告。可能是在手动执行之后,但通常是在执行测试之后,从而在创建中提供帮助。
条件if (ia.length() < i + 1) {
有两个分支:
-
ia.length() < i + 1 == false
-
ia.length() < i + 1 == true
so
2个分支中的1个
表示其中一个分支是被执行的,而另一个分支则未执行。