Estoy ejecutando Node v16.11.0. Intentando probar un módulo Worker que definí como tal:
const Worker = (function(){ function start(){...} function stop(){...} function privateFunction1(){ ...some stuff ...calls privateFunction2(); } function privateFunction2(){...} return { start: start, stop: stop, /** for testing only:**/ _privateFunction1: privateFunction1, _privateFunction2: privateFunction2 } })(); module.exports = Worker;Y en mi archivo de prueba tengo:
const worker = require("../../worker"); const sinon = require("sinon"); const chai = require("chai"); var assert = chai.assert; var expect = chai.expect; describe("Worker", function () { const sandbox = sinon.createSandbox(); describe("#privateFunction1", function () { ..... beforeEach(function () { removeStub = sandbox.stub(worker, "_privateFunction2"); ....... }); afterEach(function () { sandbox.restore(); }); it("should test something", function () { let obj = {} //just for demo purposes assert.equal(worker._privateFunction1(obj), false); });La expectativa aquí es que _privateFunction1() comenzará a ejecutarse, llamará a privateFunction2 y esa llamada será manejada por el stub.
Pero en su lugar se llama al método real. El stubbing no funciona.
¿Alguien tiene alguna idea de lo que falta aquí?
Gracias