3 votes

Stub es6 getter setter avec sinon

Si vous utilisez la syntaxe es6 suivante pour les getters/setter

class Person {
  constructor(name) {
    this._name = name;
  }

  get name() {
    return this._name.toUpperCase();
  }

  set name(newName) {
    this._name = newName;
  } 
}

Comment faire pour bloquer la méthode getter ?

const john = new Person('john')
sinon.createSandbox().stub(john, 'name').returns('whatever')

Cela ne semble pas fonctionner.

4voto

Florian Points 339

Numéro Github m'a conduit à : sinon js doc

stub.get(getterFn)

Remplace un nouveau getter pour ce stub.

var myObj = {
    prop: 'foo'
};

sinon.stub(myObj, 'prop').get(function getterFn() {
    return 'bar';
});

myObj.prop; // 'bar'

stub.set(setterFn)

Définit un nouveau setter pour ce stub.

var myObj = {
    example: 'oldValue',
    prop: 'foo'
};

sinon.stub(myObj, 'prop').set(function setterFn(val) {
    myObj.example = val;
});

myObj.prop = 'baz';

myObj.example; // 'baz'

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