我在我的java maven项目上使用了jacoco覆盖率报告,但是它似乎无法识别公共功能上的分支
例如,如果我发送具有以下功能的文件:
public class CobrancaConverter {
public CobrancaEntity convert(NFeCobrancaEntity cobranca, NfePK nfeKey) {
if (cobranca == null) {
return null;
} else {
DuplicatasConverter duplicatasConverter = new DuplicatasConverter();
CobrancaEntity entity = new CobrancaEntity();
entity.setY03Nfat(cobranca.getNfat());
entity.setY04Vorig(cobranca.getvOrig());
entity.setY05Vdesc(cobranca.getvDesc());
entity.setY06Vliq(cobranca.getvLiq());
entity.setKey(nfeKey);
List<CobrancaDuplicataEntity> duplicatas = duplicatasConverter.convert(cobranca.getDuplicatas(), nfeKey);
entity.setDuplicatas(duplicatas);
return entity;
}
}
}
Jacoco无法将“ if”识别为分支,也不会将其计入涵盖的分支百分比,但是如果我创建一个这样的调用私有函数的公共函数,它将起作用。
public class CobrancaConverter {
public CobrancaEntity converter(NFeCobrancaEntity cobranca, NfePK nfeKey){
return convert(cobranca, nfeKey);
}
private CobrancaEntity convert(NFeCobrancaEntity cobranca, NfePK nfeKey) {
if (cobranca == null) {
return null;
} else {
DuplicatasConverter duplicatasConverter = new DuplicatasConverter();
CobrancaEntity entity = new CobrancaEntity();
entity.setY03Nfat(cobranca.getNfat());
entity.setY04Vorig(cobranca.getvOrig());
entity.setY05Vdesc(cobranca.getvDesc());
entity.setY06Vliq(cobranca.getvLiq());
entity.setKey(nfeKey);
List<CobrancaDuplicataEntity> duplicatas = duplicatasConverter.convert(cobranca.getDuplicatas(), nfeKey);
entity.setDuplicatas(duplicatas);
return entity;
}
}
}
Jacoco不能认清这两种情况吗?我是在做错什么,这是预期的还是我应该报告的错误?