如何在MongoDB上模拟“错误”事件

时间:2014-09-08 06:34:15

标签: mongodb unit-testing mongojs noflo

我正在尝试为NoFlo组件编写测试用例(由同事编写) - 组件中有一个“connect”inPort和一个“error”outPort,如:

var self = this; // a NoFlo Component
var mongodb = null;

self.inPorts.connect.on("data", function(uri) {
    mongodb = mongojs(uri);

    self.outPorts.connected.send(mongodb);

    mongodb.on("error", function(error) {
        self.outPorts.error.send(error);
    });
});

因此,基于此代码模式,我应该如何模拟错误情况(在测试用例中),以便通过outPort发送错误?

我尝试发送一个糟糕的uri,如“lcalhost:99999 / abcdef”,但它不起作用。


更新:原始代码通过“已连接”的outPort发送mongodb实例,我将其缓存以成功发出“错误”事件。

1 个答案:

答案 0 :(得分:3)

mongojs延伸EventEmitter

假设mongodb是全球性的,请致电mongodb.emit("error", "This is an error")以激活error事件。

如果mongodb未定义,请尝试使用self的值来访问它。

更多信息: