Я пытаюсь написать модульный тест для функции, но не могу понять, как проверить, выполняет ли она вызов вложенной функции с определенным аргументом. Я предполагаю, что мне нужно будет использовать sinon вместе с chai и mocha для этого, но я действительно мог бы использовать некоторую помощь.
Функция, которую я хотел бы протестировать, выглядит следующим образом:
function myFunc(next, value) {
if (value === 1) {
const err = new Error('This sets an error');
next(err);
} else {
next();
}
}
Iхотел бы проверить, вызывается ли next с переменной err или без нее. Из того, что я прочитал до сих пор, я должен использовать шпиона для этого (я думаю), но как бы я использовал этого шпиона? Глядя на этот пример из документации Sinon, мне неясно, откуда берется PubSub:
"test should call subscribers with message as first argument" : function () {
var message = "an example message";
var spy = sinon.spy();
PubSub.subscribe(message, spy);
PubSub.publishSync(message, "some payload");
sinon.assert.calledOnce(spy);
sinon.assert.calledWith(spy, message);
}
Источник: https://sinonjs.org/releases/latest/assertions/