我无法理解如何对测试功能进行单元化,以便伊斯坦布尔考虑将其覆盖。
对于一个非常简单的例子,我创建了这个数学模块:
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);
});
});
伊斯坦布尔制作的报告给出了这些结果:
如果简单地测试调用函数的结果不算作覆盖率,那么当它在单元测试无法访问的函数范围内时,你应该如何测试这段代码呢?
答案 0 :(得分:1)
与所有最棘手的问题一样,这是由一些愚蠢和无关的事情造成的。
我正在通过grunt运行istanbul并使用env
解决方法,因此在检查coverage时会使用正确的目录。就像这样:
env: {
coverage: {
APP_DIR_FOR_CODE_COVERAGE: '../test/coverage/instrument/app/'
}
},
所示
问题在于我忘记在为运行覆盖测试而创建的任务中包含env:coverage
。
无论如何,如果你遇到同样的问题,你可能也做了一些非常愚蠢的事情。