覆盖伊斯坦布尔和摩卡/柴的功能

时间:2014-03-18 02:34:16

标签: node.js unit-testing code-coverage mocha istanbul

我无法理解如何对测试功能进行单元化,以便伊斯坦布尔考虑将其覆盖。

对于一个非常简单的例子,我创建了这个数学模块:

var add = function( one, two ){
    return one + two;
}

module.exports = {
    add: add
};

和基本单元测试:

var chai = require('chai');
var expect = chai.expect;

describe('add() method', function(){
    it('should do math', function(){
        expect( some.add(1, 1) ).to.equal(2);
    });
});

伊斯坦布尔制作的报告给出了这些结果:

  • 声明:66.67%(2/3)
  • 分支:100%(0/0)
  • 功能:0%(0/1)
  • 行:66.67%(2/3)
  • 忽略:无

enter image description here

如果简单地测试调用函数的结果不算作覆盖率,那么当它在单元测试无法访问的函数范围内时,你应该如何测试这段代码呢?

1 个答案:

答案 0 :(得分:1)

与所有最棘手的问题一样,这是由一些愚蠢和无关的事情造成的。

我正在通过grunt运行istanbul并使用env解决方法,因此在检查coverage时会使用正确的目录。就像这样:

env: {
    coverage: {
        APP_DIR_FOR_CODE_COVERAGE: '../test/coverage/instrument/app/'
    }
},

grunt-istanbul documentation

所示

问题在于我忘记在为运行覆盖测试而创建的任务中包含env:coverage

无论如何,如果你遇到同样的问题,你可能也做了一些非常愚蠢的事情。