Injecting dependencies with rewireAdvanced testing Sinon stubs

→ sinonjs.org

spies

Les spies sont des fonctions particulières qui enregistrent différents détails sur comment elles sont appelées, avec quels arguments, et l'état de l'objet this qui est associé à chaque fonction.

On peut utiliser des spies en lieu et place de vraies fonctions. Ils nous permettent de nous assurer qu'une fonction spécifique a été appelée, sans avoir à invoquer une fonction réelle.

npm install sinon –save-dev

// order-specs.js
(...)
var sinon = require("sinon");
(...)
beforeEach(function() {
  (...)
  
  this.console = {
    log: sinon.spy()
  };
  
  order.__set__("inventoryData", this.testData);
  order.__set__("console", this.console);
(...)
  it("order (...)", function(done) {
  
    var _this = this;
    
    order.orderItem("CCC", 3, function() {
      expect(__this.console.log.callCount).to.equal(2);
      done();
    });
  });
(...)