如何使用 mocha 和 chi 检查节点 js 中的兔子连接以进行单元测试

How to check rabbit connection in node js for unit test using mocha and chi

我正在使用 amqplib-package 连接到 nodeJS 中的 RabbitMQ,我想知道 我如何在 nodeJS 中使用 Mocha 和 Chai check/verify 我的 RabbitMQ 连接?

您可以尝试以下方法之一:

如果你使用的是 ampqlib 包,并且你想测试连接是否建立,那么它不被视为单元测试,我们可以称之为集成测试。

其他答案有很好的关于集成测试的内容,但是对于单元测试,你可以使用 amqplib-mocks (https://www.npmjs.com/package/amqplib-mocks),这是一个简单的 amqplib 模拟框架。

对于基本单元测试,您可以检查是否调用了 amqp.connect(url) 并期待您想要的 URL。

我还可以展示一个基本示例,说明如何获取存根连接对象: (ps:这不是运行代码,仅供参考)

subscriber.js

const amqp = require('amqplib');
class Subscriber {
   async getConnection(url) {
        const connection = await amqp.connect(url);
        return connection;
   }
}

订阅者 class 有一个方法 getConnection 建立和 return 一个与 rabbitmq 的连接对象。

subscriber.test.js

const amqpMock = require('amqplib-mocks');
const sinon = require('sinon');

const mockConnection = await amqpMock.connect('mockurl.com');
const getConnectionStub = sinon.stub(Subscriber.prototype, 'getConnection').returns(mockConnection);

在上面的代码中,您可以直接存根 ampq.connect 或存根 getConnection 方法和 return 连接对象,作为 return 由 amqp-mock 的连接方法编辑。

要了解更多关于上面使用的 sinon,click