candy-wrapper, Sinon :
https://www.npmjs.com/package/candy-wrapper
, , , - , :
var Wrapper = require("candy-wrapper");
var myDrone = {
name: "DJI",
fly: function(direction) {
return true;
}
}
new Wrapper(myDrone, "name");
new Wrapper(myDrone, "fly");
myDrone.fly("north");
myDrone.fly("west");
myDrone.fly.historyList.filterFirst().expectCallArgs("north");
myDrone.fly.historyList.filterSecond().expectCallArgs("east");
myDrone.fly.expectReportAllFailtures();
myDrone.fly.triggerOnCallArgs("east").actionReturn(false);
myDrone.fly("east");
myDrone.fly("west");
myDrone.name.triggerOnSet().actionThrowException(new Error("do not set the name"));
myDrone.name = "Bob";
var ret = myDrone.name;