假设我有这个功能:
function doSomething(n) {
for (var i = 0; i < n; i++) {
doSomethingElse();
}
}
我如何测试 doSomethingElse
函数是否被调用了 n 次??
我试过类似的方法:
test("Testing something", function () {
var spy = sinon.spy(doSomethingElse);
doSomething(12);
equal(spy.callCount, 12, "doSomethingElse is called 12 times");
});
但这似乎不起作用,因为您必须在 doSomething()
调用原始 doSomethingElse()
时调用 spy 。我怎样才能使它与 QUnit/sinon.js 一起工作?
编辑
也许这甚至不是一个好主意?这是否因为调用了另一个函数而超出了“单元测试”范围?
最佳答案
你可以这样做:
test('example1', function () {
var originalDoSomethingElse = doSomethingElse;
doSomethingElse = sinon.spy(doSomethingElse);
doSomething(12);
strictEqual(doSomethingElse.callCount, 12);
doSomethingElse = originalDoSomethingElse;
});
例如:JSFiddle .
关于javascript - 如何测试Javascript中另一个函数的函数调用次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22716439/