1
由於Node.js爲所需模塊創建全局單例,我如何在每個測試中創建下面我的遊戲的獨特實例?我想確保每次開始遊戲時,它都是從一個新的遊戲對象開始的,它將開始初始化爲false。在每次測試中爲所需模式模塊創建新對象
現在game.start,遊戲是每個測試中使用的同一個單例,我不希望這樣,我不應該在每次測試中分享這個單例,這顯然很糟糕。
let chai = require('chai'),
should = chai.should(),
game = require('../src/game');
describe('Starting the Game',() => {
it('should be able to start the game',() => {
game.start();
game.started.should.be.true;
});
it('should contain a new board to play on when game starts',() => {
game.start();
game.started.should.be.true;
should.exist(game.board);
});
});
game.js
var board = require('./board'),
player = require('./player');
var game = module.exports = {
start: start,
started: false,
board: board.create()
};
function start(){
game.started = true;
};
我在之前做的是通過這樣做是爲了克隆它:JSON.parse(JSON。字符串化(遊戲));遊戲是必需的模塊。這對我有用,但是在尋找替代品,任何人告訴我,如果這對我來說是安全或正常的。 – PositiveGuy
是啊所以你基本上改變這個不再使用節點模塊,但新的ES6類與出口? – PositiveGuy
有趣我沒有必要添加完成()和我的測試運行綠色和失敗時,他們也應該。 – PositiveGuy