proxyquire を使用した後、特定の関数を sinon でスタブ化する際に問題が発生しています。
例:
// a.js
const api = require('api');
module.exports = (function () {
return {
run,
doStuff
};
function run() {
return api()
.then((data) => {
return doStuff(data);
})
}
function doStuff(data) {
return `Got data: ${data}`;
}
})()
// a.spec.js - in the test
a = proxyquire('./a', {
'api': () => Promise.resolve('data')
})
sinon.stub(a, 'doStuff');
// RUN TEST - call a.run()
モック/スタブ化されたdoStuffではなく元のdoStuffを呼び出すため、機能していないことはわかっています。