2

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を呼び出すため、機能していないことはわかっています。

4

1 に答える 1