Javascript jasmine节点没有输出
我不熟悉JavaScript、Node.js和jasmine。我正在尝试运行一个来自“节点工匠手册”的测试,FilesizeWatcher。我创建了package.json文件并运行“npm install”,从而将jasmine节点本地安装到项目中。当我在spec文件上运行jasmine节点时,我只看到console.log的输出,而没有看到jasmine的输出。我可以从console.log语句中看到对jasmine的调用(例如expect(err).toBe(“Path不以斜杠开头”);),但没有输出Javascript jasmine节点没有输出,javascript,node.js,jasmine-node,Javascript,Node.js,Jasmine Node,我不熟悉JavaScript、Node.js和jasmine。我正在尝试运行一个来自“节点工匠手册”的测试,FilesizeWatcher。我创建了package.json文件并运行“npm install”,从而将jasmine节点本地安装到项目中。当我在spec文件上运行jasmine节点时,我只看到console.log的输出,而没有看到jasmine的输出。我可以从console.log语句中看到对jasmine的调用(例如expect(err).toBe(“Path不以斜杠开头”);)
知道应该从哪里开始查找错误吗?我知道您指的是什么代码。问题是
watcher.on('grew', function(gain) {
expect(gain).toBe(5);
done();
});
替换为:
watcher.callbacks['grew'] = function(gain) {
expect(gain).toBe(5);
done();
}
问题的核心似乎是编写测试是为了在不同的代码上运行。从纯JS的角度来看,
watcher
对象没有上的“键”,因此,简单地阅读代码,我不希望它工作。我对Node也很陌生,所以,起初,我只是假设它会工作。我认为这里的教训是:JS就是JS,node对它所做的一切都不会改变这一点。我在一本名为《雄辩的Javascript》的书中找到了一个更好的介绍。祝你好运 我意识到自己犯了一些错误后,才设法让它起作用
首先,我仍然有self.callbacks={}代码>在我的代码中。我把这个拿走了。
其次,我仍然在使用self.callbacks['error']('Path不以斜杠开头”)代码>。我把它改成了self.emit('error','Path不以斜杠开头')代码>
问题已解决(对我而言)。我也遇到了同样的问题,并发现通过添加交换机:
——captureExceptions
上面的评论中@Charminbear提到,jasmine节点在我的脚本中生成了一个错误列表。解决这些问题。我也有同样的问题,谢谢@John Doherty的回答,我发现了我的问题:
self.callbacks = {};
//...
FilesizeWatcher.prototype.on = function(eventType, callback) {
this.callback[eventType] = callback;
};
这是一个关于这个回调的打字错误,应该是这个回调
:
FilesizeWatcher.prototype.on = function(eventType, callback) {
this.callbacks[eventType] = callback;
};
请同时发布测试的相关代码。另外,尝试使用--captureExceptions
标志运行它。Jasmine默认支持节点.js
,因此您不需要Jasmine节点
。我有一个类似的问题,但这里的答案对我来说不起作用。我的问题是: