编辑:底部的解决方案。
这是我第一次开玩笑。我正在尝试为我的服务运行“库存”测试,即,当它通过cli创建服务时,一个feathersjs会为您设置。该服务使用带有回调的异步函数,作为最后一步,我在其中进行了一些登录到控制台的记录。我收到错误消息:“测试完成后无法记录。您是否忘记等待测试中的异步操作?”我怀疑测试在退出之前没有等待回调完成,因此在执行回调时尝试在测试完成后记录日志。
这是库存测试:
mutate
我尝试了文档中提到的一些技术,例如async / await:
it('registered the service', () => {
const service = app.service('order');
expect(service).toBeTruthy();
});
,并且我尝试使用“完成”: 我每次都会收到相同的错误消息。
这是进行记录的服务代码的一部分:
it('registered the service', async () => {
const service = await app.service('order');
expect(service).toBeTruthy();
});
我认为我需要找到一种方法让测试等待回调,但是问题可能出在其他地方。
感谢您的帮助!
编辑:我可以通过更改库存测试来解决此问题:
amqp.connect(amqp_url, (err0, conn) => {
if(err0) {
throw(err0);
}
conn.createChannel((err1, ch) => {
if(err1) {
throw(err1);
}
ch.assertQueue(orchToOrderQName);
ch.consume(orchToOrderQName, function(msg) {
ch.ack(msg);
service.emit('create', msg);
});
orchToOrderChannel = ch;
});
conn.createChannel((err1, ch) => {
if(err1) {
throw(err1);
}
ch.assertQueue(orderToOrchQName);
orderToOrchChannel = ch;
console.log(" [*] Order is consuming messages from %s.", orchToOrderQName);
});
});
,并且我不再收到有关日志记录的错误消息。如果有更好的解决方法,请告诉我。