4 votes

Comment puis-je stuber les fonctions référencées en interne avec sinonjs ?

J'ai un monModule Module Node.js contenant :

function b() {
  console.log('original b');
}

function a() {
  b();
}

exports.a = a
exports.b = b;

Et la suite de tests suivante en utilisant mocha + sinon.js :

const myModule = require('./myModule.js');
const sinon = require('sinon');
const sinonChai = require('sinon-chai');

chai.use(sinonChai);

describe('not working stub', () => {
  it('should call the stub', () => {
    let stub = sinon.stub(myModule, 'b', () => { console.log('stubbed b')});
    myModule.a();
    expect(stub).to.have.been.called;
  })
});

Je m'attends à ce que le stub soit appelé, mais le b original est appelé à la place, pourquoi ?

0voto

pride Points 25

Var stub = sinon.stub(objet, "method", func) ;

Cette fonction a été supprimée dans la version 3.0.0. Vous devez plutôt utiliser stub(objet, 'méthode').callsFake(fn). Ou vous pouvez utiliser .yields(fn).

https://sinonjs.org/releases/latest/stubs/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X