javascript - 如何避免无用的else block 语句来增加单元测试用例中的分支覆盖率?

标签 javascript unit-testing gulp sonarqube karma-jasmine

考虑以下代码:

    function test(val){
        flag = val;        

        if (!flag) {
            doThis();
        }     
        createSomething();
   }

因此,考虑到单元测试覆盖率,即使函数语句被覆盖,分支也不会被覆盖,因为 else block 不存在。因此覆盖的分支将是 50%,并且由于 Sonar 问题,我们将无法合并它来开发。因此,为了摆脱这些无用的代码,我们在 else block 中编写诸如 return false; 之类的代码,并使脚本不断增长。

这是编写代码的有效方法吗?有没有办法避免编写无用的不必要的代码,只是为了确保覆盖率是100%。这是一种不好的做法,需要建议来摆脱这种情况。我们是否有任何设置,以便我们可以更新忽略else block 语句并增加覆盖范围(如果未定义)。

Sonar 强制写入 else block :

enter image description here

我的代码覆盖率是 100%,但分支覆盖率是 50%,只是因为忽略了 else block 。定义了 Sonar 规则,如果不超过 80%,我们无法合并代码:(

最佳答案

您不需要额外的代码,只需确保调用 test(true)test(false) 并且测试应显示 100% 分支覆盖率对于该功能

关于javascript - 如何避免无用的else block 语句来增加单元测试用例中的分支覆盖率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40948796/

相关文章:

javascript - 我可以从 ServiceWorker 中的外部 JS 文件调用方法吗?

npm - gulp 错误 : events. js:72

javascript - 草皮缓冲区传单geojson ajax

javascript - 使用 jquery 处理成功的表单提交

c# - Azure 持久 HTTPStart 方法中的单元测试 (Rhino) DBUp

c# - 测试后如何删除 vshost.exe?

javascript - 我如何等待 GULP4 SERIES 中的任务

javascript - 查找 3D javascript 数组沿单轴的最小值/最大值

javascript - 浏览器在扫雷克隆中报告 "too much recursion"

git - 事后单元测试