testing一个函数与Mocha调用另一个函数

我有一个关于在Mocha中testingNode.js的具体情况的问题。 假设我在我的应用程序中有以下代码…

function a() { //... } function b() { //... } function c() { if(condition) { a(); } else { b(); } } 

如果我正在testing函数c,我怎么能确认函数a或函数b被调用? 有没有办法做到这一点?

我find了一个我正在尝试做的解决scheme。 Sinon间谍可以帮助确定某个函数是否被调用。

这是代码覆盖的目的。 幸运的是,mocha支持利用JSCoverage 。 我使用的MakeFile如下所示:

 coverage: rm -rf lib-cov jscoverage --no-highlight lib lib-cov @MOCHA_COV=1 mocha --reporter html-cov > coverage.html google-chrome coverage.html 
  1. 第一行删除摩卡显示代码覆盖率所需的(上一个)检测到的JavaScript文件(文件夹)。
  2. 第二行使用jscoverage从原始lib文件夹创build仪表化的lib-cov文件夹。
  3. 第三行是用来确保我的节点代码知道它需要运行检测代码。
  4. 最后,我在google-chrome查看coverage.html

在我的摩卡testing文件中,我有一个如下所示的行:

 var BASE_PATH = process.env.MOCHA_COV ? './../lib-cov/' : './../lib/'; 

这样,当MOCHA_COV=1时,将使用仪表代码。


一些更有趣的代码覆盖率的链接: