茉莉花节点没有输出

No output from jasmine-node

我是 JavaScript、Node.js 和 jasmine 的新手。我正在尝试 运行 本书 "The Node Craftsman Book" 中的一个测试,FilesizeWatcher。我已经创建了 package.json 文件和 运行 "npm install",从而在本地将 jasmine-node 安装到项目中。当我在规范文件上 运行 jasmine-node 时,我只看到 console.log 的输出,但没有看到 jasmine 的输出。我可以从 console.log 调用 jasmine 的语句(例如 expect(err).toBe("Path does not start with a slash");)中看到,但没有输出。

知道我应该从哪里开始查找错误吗?

我知道你指的是什么代码。问题是

watcher.on('grew', function(gain) { 
 expect(gain).toBe(5);
 done();
});

替换为:

watcher.callbacks['grew'] = function(gain) { 
 expect(gain).toBe(5);
 done();
}

问题的核心好像是测试写到运行在不同的代码上。从纯 JS 的角度来看,watcher 对象没有 on "key",因此,通过简单地阅读代码,我不希望它工作。我也是 Node 的新手,所以起初,我只是假设它会工作。我认为这里的教训是:JS 就是 JS,节点对它做的任何事情都不会改变它。我在一本名为 "Eloquent Javascript" 的书中找到了更好的介绍。祝你好运!

在意识到我的一些错误后,我设法让它工作。

首先,我的代码中仍然有 self.callbacks = {};。我删除了这个。 其次,我还在用self.callbacks['error']('Path does not start with a slash');。我改成了self.emit('error', 'Path does not start with a slash');

问题已解决(对我而言)。

我遇到了同样的问题,并通过添加开关发现:

--captureExceptions

@Charminbear 在上面的评论中提到,jasmine-node 在我的脚本中生成了错误列表。修复这些解决了问题。

我遇到了同样的问题,感谢@John Doherty 的回答,我发现了我的问题:

self.callbacks = {};
//...
FilesizeWatcher.prototype.on = function(eventType, callback) {
    this.callback[eventType] = callback;
};

this.callback打错了,应该是this.callbacks:

FilesizeWatcher.prototype.on = function(eventType, callback) {
    this.callbacks[eventType] = callback;
};