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

Javascript 如何避免无用的else块语句来增加单元测试用例中的分支覆盖率?,javascript,unit-testing,gulp,sonarqube,karma-jasmine,Javascript,Unit Testing,Gulp,Sonarqube,Karma Jasmine,考虑到以下准则: function test(val){ flag = val; if (!flag) { doThis(); } createSomething(); } 因此,考虑到单元测试覆盖率,即使函数语句被覆盖,分支也不会被覆盖,因为else块不存在。因此,所涵盖的分支将占50%,由于声纳问题,我们将无法将其合并开发。因此,为了摆脱这种无用的代码,我们编写

考虑到以下准则:

    function test(val){
        flag = val;        

        if (!flag) {
            doThis();
        }     
        createSomething();
   }
因此,考虑到单元测试覆盖率,即使函数语句被覆盖,分支也不会被覆盖,因为else块不存在。因此,所涵盖的分支将占50%,由于声纳问题,我们将无法将其合并开发。因此,为了摆脱这种无用的代码,我们编写的代码返回false;在else块中,使脚本增长

这是编写代码的有效方法吗?有没有一种方法可以避免仅仅为了确保覆盖率为100%而编写无用的、不必要的代码。这是一个糟糕的做法,需要建议来摆脱它。我们是否有任何设置,以便可以更新ignore else block语句,并在未定义的情况下增加覆盖率

声纳强制写入else块:


我有100%的代码覆盖率,但是由于忽略了else块,分支覆盖率是50%。如果不超过80%,则定义了声纳规则,我们无法合并代码:

您不需要额外的代码,您只需确保调用testtrue和testfalse,测试应显示该函数的100%分支覆盖率

您不需要额外的代码,您只需确保调用testtrue和testfalse,测试应显示该函数的100%分支覆盖率

为什么需要添加else块来提高覆盖率?只要用truthy val和falsy val测试你的函数,一切都会被覆盖。我们看不到你的测试,但如果你有一个测试,那么这是需要的!标志和一个检查它是否为标志的标志,那么您应该看到完全覆盖。为什么您需要添加一个else块来提高覆盖率?只要用truthy val和falsy val测试你的函数,一切都会被覆盖。我们看不到你的测试,但如果你有一个测试,那么这是需要的!标志和一个检查它是否为标志的标志,然后您应该看到完全覆盖。