Мой производственный код выглядит так:
exports.convertWord = number => { /* some logic here */ }
exports.methodUnderTest = () => {
return exports.convertWord(1);
}
Тестовый код:
const mockConvertToWord = sinon.stub();
mockConvertToWord.withArgs(1).returns('one');
fileUnderTest.convertWord = mockConvertToWord;
const result = fileUnderTest.methodUnderTest();
expect(result).toBeEqual('one');
Тест, приведенный выше, зеленый.Я ожидаю, что мой тест сломается, если я изменю код продукта на:
exports.convertWord = number => { /* some logic here */ }
exports.methodUnderTest = () => {
return exports.convertWord(1, 'another arg');
}
, но это не так.Sinon отлично работает, даже когда я передаю дополнительные параметры, которые я не указал в методе withArgs
.Как я могу сказать sinon возвращать значение только тогда, когда метод был вызван с точным количеством параметров?