无法将未定义或null转换为对象
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;
如果您期望
相关文章:
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- 在Javascript中转换对象数组
- 如何将TypeScript对象转换为普通对象
- JavaScript代码问题:我正在将对象转换为数组
- Javascript如何转换对象数组
- 任何转换对象*值*的Javascript或Coffeescript“映射”函数
- 转换对象数组
- 转换对象或数组值的最佳方式
- 使用lodash转换对象的键和值的最优雅的方法是什么?
- Javascript/html5 2d Canvas Context -获取相对于Canvas的X, Y(相对于转换对象
- javascript,转换或强制转换对象
- 根据对象的不同,在转换对象时考虑旋转
- 在类中转换对象
- 转换对象数组的结构
- 用于在浏览器中转换对象(拖动、缩放、旋转和扭曲)的Javascript框架
- Javascript:通过lodash、下划线或corejavascript转换对象响应数组
- 如何转换对象数组
- 使用Lodash转换对象数组