Можно ли заставить sinon следить за функциональными выражениями? Посмотрите этот код, например.
function one() { return 1; }
function two() { return 2; }
function three() { return 3; }
function myMethod() {
var n1 = one();
var n2 = two();
var n3 = three();
return n1 + n2 + n3;
}
QUnit.module('My test');
QUnit.test('testing functions', (assert) => {
assert.expect(3);
const spyOne = sinon.spy(one);
const spyTwo = sinon.spy(two);
const spyThree = sinon.spy(three);
myMethod();
assert.ok(spyOne.called, "called one");
assert.ok(spyTwo.called, "called two");
assert.ok(spyThree.called, "called three");
sinon.restore();
});
Несмотря на то, что я звоню myMethod()
и у меня есть шпионы на one - two - three
, я все равно получаю ложный ответ на one.called
(то же самое для two
и three
)
Что мне здесь не хватает?
Спасибо!