Следите за деструктурированным требованием метода

У меня есть метод, где я импортирую метод с деструктуризацией. Я пытаюсь шпионить за этим методом, но продолжаю сталкиваться с ошибками.

const { addition } = require('./my-math-lib');

const additionSpy = sinon.spy(addition);

testMethod.doMath();

expect(additionSpy.calledOnce).to.be.equal(true);

К сожалению, этот модульный тест не работает. Когда я смотрю на объект AdditionalSpy, я вижу, что notCalled имеет значение true.

Если я изменю код на -

const mathStuff = require('./my-math-lib');

const additionSpy = sinon.spy(mathStuff, 'addition');

testMethod.doMath();

expect(additionSpy.calledOnce).to.be.equal(true);

Этот юнит-тест пройдёт.

1 ответ

Шпионский метод Синона не может изменять функции. Функции не являются изменяемыми в Javascript. Шпионский метод Синона может создать новую функцию (additionSpy в вашем первом примере), или он может изменить объект и заменить метод на нем (ваш второй пример). Ваш второй пример выглядит правильно для того, что вы хотите сделать.

Другие вопросы по тегам