Stubs → = spies++, en gros permet de contrôler le comportement d'une fonction en particulier.
// order-spec.js
(...)
this.console = (...);
this.warehouse = {
packageAndShip: sinon.stub().yelds(0123456789) // la fonction yelds va invoquer le callback refilé lors de l'appelle de packageAndShip //0123456789 = faux tracking number attendu
}
order.__set__("inventoryData", this.testData);
order.__set__("console", this.console);
order.__set__("warehouse", this.warehouse);
(...)
it("order (...), function() { (...) });
describe("Warehouse interaction", function() {
beforeEach(function() {
this.callback = sinon.spy();
order.orderItem("CCC", 2, this.callback);
});
it("receive a tracking number", function() {
expect(this.callback.calledWith(0123456789).to.equal(true);
});
it("call packageAndShip with the correct sku and quantity", function() {
expect(this.warehouse.packageAndShip.calledWith("CCC", 2)).to.equal(true);;
});
});