mongodb - 如何在 MongoDB 上模拟 'error' 事件

标签 mongodb unit-testing mongojs noflo

我正在尝试为 NoFlo 组件(由同事编写)编写一个测试用例 - 该组件有一个“连接”输入端口和一个“错误”输出端口,例如:

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 实例,我将其缓存以成功发出“错误”事件。

最佳答案

mongojs 扩展了 EventEmitter

假设mongodb是全局的,调用mongodb.emit("error", "This is an error")来激活error事件.

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

更多信息:

关于mongodb - 如何在 MongoDB 上模拟 'error' 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25718585/

相关文章:

node.js - 在 Mongoose 中的对象内创建对象后复制对象(MongoDB、Node.JS、express)

c# - 这种模式叫什么?应该如何测试它?

javascript - 使用 Node.js 连接到 MongoLab 中的 mongoDB 时出现错误

javascript - Mongodb Emulator 模拟真实的 nosql 事务

mongodb - 过滤器内的 $eq 不适用于数组字段 - Mongodb

node.js - loopback 4中如何编写单元测试用例

node.js - Mongojs.ObjectId() 产生错误的时间戳

mongodb - 在 Mongodb 问题上运行复制

java - Jenkins 构建中嵌入式 Mongo DB 测试的 UnknownHostException