【发布时间】:2016-10-03 15:06:21
【问题描述】:
所以我正在对我的代码进行单元测试,但在测试一个在我正在单元测试的函数内部调用的匿名函数时遇到了问题。 我之所以没有将匿名函数设为一个名为函数的实例,是因为我需要封闭单元测试函数中的一些变量才能在匿名函数内部使用。 举例说明:
function funcBeingTested(done, arg1) {
var self = this;
...
self.array.push({
"arguments": [
"x", "y", function (error, result) {
// do some stuff with arg1...
done(error, arg1);
}, "z"
]
});
...
self.run(); // Eventually will call the anonymous function above from 'self.array'
}
现在,我的问题是有没有办法使用 sinon.js 测试该匿名函数内部发生了什么?
作为funcBeingTested() 单元测试的一部分,我可以使用特定参数调用它?
编辑:
为了消除对我想要实现的目标的任何误解,
我希望能够自行对 匿名函数 进行单元测试并覆盖所有可能的分支以获得 100% 的覆盖率。我已经知道如何检查是否调用了 done() 回调,以及使用 sinon.js 的 args,问题是我将如何单独测试匿名函数,并使用特定参数调用它以覆盖所有可能的分支。
【问题讨论】:
-
如果无法从“外部”访问某个功能,诗浓将无法对其进行任何操作。是不是可以将
done和arg1传递给单独的方法,而不是使用匿名函数?
标签: javascript node.js unit-testing testing sinon