I write a unit-test for doB
function of my module.
I want to stub the function doA
without exporting it, I prefer not change the way doB
accesses doA
.
I understand that it cannot be simply stub
ed because it isnt in the exported object.
How do I stub doA
(sinon
or any other tool?)
function doA (value) {
/* do stuff */
}
function doB (value) {
let resultA = doA(value);
if (resultA === 'something') {
/* do some */
} else {
/* do otherwise */
}
}
module.exports = exports = {
doB
}
I did it using rewire too. This is what I came up with
const demographic = rewire('./demographic')
const getDemographicsObject = { getDemographics: demographic.__get__('getDemographics') };
const stubGetDemographics = sinon
.stub(getDemographicsObject, 'getDemographics')
.returns(testScores);
demographic.__set__('getDemographics', stubGetDemographics);
Hope this helps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With