我有一个关于在Mocha for Node.js中测试特定情况的问题。假设我的应用程序中有以下代码...
function a() {
//...
}
function b() {
//...
}
function c() {
if(condition) {
a();
} else {
b();
}
}
如果我正在测试函数c,我怎么能验证函数a或函数b是否被调用?有没有办法做到这一点?
答案 0 :(得分:5)
我找到了解决方案。 Sinon spies可以帮助确定是否调用了某个函数。
答案 1 :(得分:1)
这就是code coverage的用途。幸运的是,摩卡支持利用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
jscoverage
从原始lib-cov
文件夹创建已检测的lib
文件夹。coverage.html
中查看google-chrome
。在我的mocha测试文件中,我有一行看起来像:
var BASE_PATH = process.env.MOCHA_COV ? './../lib-cov/' : './../lib/';
这样当MOCHA_COV=1
时,将使用已检测的代码。
有关代码覆盖率的更多有趣链接: