[英]Cannot convert undefined or null to object
不知道我在哪里出錯了:
test.js
let chai = require('chai'),
should = chai.should(),
game = require('../src/game');
it('should be able to start the game', () => {
game.start();
game.started.should.be.true;
});
game.js
var board = require('./board'),
hasStarted = false;
module.exports = {
start: start,
started: hasStarted
};
function start(){
hasStarted = true;
};
對於測試,我得到斷言錯誤:
AssertionError: expected false to be true
我以為我已經在start()方法中設置了它,所以為什么我的測試仍然失敗並顯示false?
您已經為模塊導出分配了hasStarted
初始值,它的初始值並未因調用start()
而改變。
使用函數而不是變量來檢索它,即:
module.exports = {
start: start,
started: function() { return hasStarted; }
};
由於您使用的局部變量是原始類型,因此在調用start方法后不會反映出來.js中的原始類型是按值傳遞的。
var hasStarted = {
isStarted: false
};
var game = {
start: start,
started: hasStarted
};
function start() {
hasStarted.isStarted = true;
};
module.exports = game;
如果您期望,這將起作用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.