如何解决如何使用 mocha 和 sinon 测试 RabbitMQ 生产者?
我有 amqp 制作人。
//rmq.producer.js
module.exports.rmqPublisher = function (message) {
amqp.connect(process.env.RMQ_URL,function (error0,connection) {
if (error0) {
throw error0;
}
connection.createChannel(function (error1,channel) {
if (error1) {
throw error1;
}
var exchange = "web_chat_topic";
var key = "web_chat.route_key";
var msg = JSON.stringify(message);
channel.assertExchange(exchange,"topic",{
durable: false,});
channel.publish(exchange,key,Buffer.from(msg));
logger.info(
`Message has been published to RMQ exchange: ${exchange},key: ${key}`
);
});
setTimeout(function () {
connection.close();
},500);
});
}
我通过调用 rmqPublisher("some_message..")
现在,我想在 nodeJS 中使用 mocha + sinon 进行测试,
我写了以下测试文件
var producer = require("../rmq.producer")
var sinon = require("sinon");
var assert = sinon.assert;
var producerTest = function () {
it("producer connection - success test",async function () {
producer.rmqPublisher("fake_msg");
});
afterEach(function () {
sinon.verifyAndRestore();
});
};
describe("test_producer",producerTest);
通过上面的测试,可以覆盖除错误处理部分之外的所有行。
有人可以帮我编写测试以覆盖所有行吗?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。