考虑以下代码:
function test(val){
flag = val;
if (!flag) {
doThis();
}
createSomething();
}
因此,考虑到单元测试覆盖率,即使函数语句被覆盖,分支也不会被覆盖,因为 else block 不存在。因此覆盖的分支将是 50%,并且由于 Sonar 问题,我们将无法合并它来开发。因此,为了摆脱这些无用的代码,我们在 else block 中编写诸如 return false;
之类的代码,并使脚本不断增长。
这是编写代码的有效方法吗?有没有办法避免编写无用的不必要的代码,只是为了确保覆盖率是100%。这是一种不好的做法,需要建议来摆脱这种情况。我们是否有任何设置,以便我们可以更新忽略else
block 语句并增加覆盖范围(如果未定义)。
Sonar 强制写入 else block :
我的代码覆盖率是 100%,但分支覆盖率是 50%,只是因为忽略了 else block 。定义了 Sonar 规则,如果不超过 80%,我们无法合并代码:(
最佳答案
您不需要额外的代码,只需确保调用 test(true)
和 test(false)
并且测试应显示 100% 分支覆盖率对于该功能
关于javascript - 如何避免无用的else block 语句来增加单元测试用例中的分支覆盖率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40948796/