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

我无法理解如何unit testingfunction,以便伊斯坦布尔会考虑它们。

举一个非常简单的例子,我创build了这个math模块:

var add = function( one, two ){ return one + two; } module.exports = { add: add }; 

和基本的unit testing:

 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)
  • function:0%(0/1)
  • 行数:66.67%(2/3)
  • 忽略:无

在这里输入图像描述

如果简单地testing调用函数的结果不算作覆盖率,那么在unit testing无法访问的函数范围内,如何testing此代码?

就像所有最棘手的问题一样,这是由一些愚蠢和无关的东西造成的。

我通过grunt运行istanbul,并使用env解决方法,因此在检查覆盖率时使用了正确的目录。 正如在这样的事情:

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

如grunt-istanbul文档所示

问题是我忘记在为创build覆盖testing而创build的任务中包含env:coverage

无论如何,如果你有这个相同的问题,你可能做了一些非常愚蠢的事情。