Wie sollte ich vermeiden, stubbing Eigenschaften mit Sinon.js

Habe ich entdeckt, dass Sinon lässt Sie nicht stub Eigenschaften, nur Methoden. Ich versuche, herauszufinden, wie man mit/umarmen diese.

Ich habe den folgenden code:

var Player = {
  addPoints: function(points) {
    this.score += points;
  },
  score: 0
}

var Game = {
  setPlayers: function(players) {
    this.players = players;
  },
  over: function() {
    return this.players.some(function(player) {
      return player.score >= 100;
    });
  },
}

Hier ist ein test ich schrieb:

describe("Game", function() {
  it("is over if a player has at least 100 points", function() {
    var game = Object.create(Game);
    player = Object.create(Player);
    game.setPlayers([player]);
    player.addPoints(100);
    game.over().should.be.true;
  });
});

Es fühlt sich falsch für mich, um zu gehen, und rufen Sie addPoints() auf Player wenn ich Teste Game. Mein erste Instinkt war zu stub Player.points, aber ich kann das nicht tun, weil Sinon nur stubs Eigenschaften, nicht die Methoden.

Wie soll ich darüber nachdenken?

InformationsquelleAutor michael | 2013-08-02
Schreibe einen Kommentar