mercredi 3 octobre 2018

Sinon stub withArgs ignores extra arguments

My production code looks like:

exports.convertWord = number => { /* some logic here */ }
exports.methodUnderTest = () => {
    return exports.convertWord(1);
}

Test code:

const mockConvertToWord = sinon.stub();
mockConvertToWord.withArgs('1').returns('one');
fileUnderTest.convertWord = mockConvertToWord;

const result = fileUnderTest.methodUnderTest();

expect(result).toBeEqual('one');

Test above is green. I expect my test will break if I change prod code to this:

exports.convertWord = number => { /* some logic here */ }
exports.methodUnderTest = () => {
    return exports.convertWord(1, 'another arg');
}

but it's not. Sinon works fine even when I pass extra params which I didn't point in withArgs method. How can I tell sinon to return value only when method has been called with exact number of params?

Aucun commentaire:

Enregistrer un commentaire