没有来自jasmine-node的输出

时间:2015-03-04 13:01:23

标签: javascript node.js jasmine-node

我是JavaScript,Node.js和jasmine的新手。我正在尝试从“节点工匠书”,FilesizeWatcher这本书中进行测试。我创建了package.json文件并运行“npm install”,从而在本地安装jasmine-node到项目中。当我在spec文件上运行jasmine-node时,我只看到来自console.log的输出,但是没有来自jasmine的输出。我可以从调用jasmine的console.log语句中看到(例如expect(err).toBe(“Path不以斜杠开头”);),但是没有输出。

知道我应该从哪里开始发现错误?

4 个答案:

答案 0 :(得分:3)

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

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

替换为:

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

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

答案 1 :(得分:2)

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

Select p.*,s.*(for all columns) from project p, Student s inner join p.id=s.id

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

我遇到了同样的问题,感谢@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;
};