Я обнаружил, что Sinon не позволяет вам заглушать свойства, а только методы. Я пытаюсь понять, как бороться с этим.Как следует избегать stubbing-свойств с помощью Sinon.js
Я следующий код:
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;
});
},
}
Вот тест я написал:
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;
});
});
Он чувствует себя не так, мне нужно пойти и позвонить addPoints()
на Player
, когда я тестирование Game
. Мой первоначальный инстинкт состоял в том, чтобы заглушить Player.points
, но я не могу этого сделать, потому что Sinon только заглушает свойства, а не методы.
Как я должен думать об этом?
Спасибо, что кажется очевидным в ретроспективе. – michael