web-dev-qa-db-fra.com

Comment stub les méthodes statiques avec sinon dans ES6?

var MyClassStub = sinon.createStubInstance(MyClass);

MyClassStub ne contient pas de méthodes statiques. Comment y remédier?

20
Rostislav Shtanko

méthode statique:

sinon.stub(YourClass, 'yourClassMethod').callsFake(() => {
  return {}
})

méthode non statique:

sinon.stub(YourClass.prototype, 'yourClassMethod').callsFake(() => {
  return {}
})
13
danday74

En utilisant sinon la version 3.1.0, je peux me moquer (stub) d'une variable statique privée en utilisant le code donné ci-dessous:

const YourClass = require('./lib/YourClass');
const mockStaticMethod = sinon.stub(YourClass, '_yourStaticMethod').returns('I am called');

La seule chose que vous devez vous rappeler que le premier paramètre de la méthode sinon.stub () devrait être la classe elle-même. Il ne doit pas être un objet de cette classe comme const yourClassObject = new YourClass();. La raison en est qu'aucun objet de la classe ne vous permettra d'accéder à des méthodes statiques.

4
S.Mishra