【发布时间】:2018-10-03 14:32:50
【问题描述】:
我的生产代码如下:
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');
}
但事实并非如此。即使我传递了我没有在withArgs 方法中指出的额外参数,Sinon 也能正常工作。我如何告诉 sinon 只有在使用确切数量的参数调用方法时才返回值?
【问题讨论】: