为什么我得到“测试完成后无法记录?”

时间:2019-05-06 20:47:33

标签: jestjs feathersjs

编辑:底部的解决方案。

这是我第一次开玩笑。我正在尝试为我的服务运行“库存”测试,即,当它通过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);
    });

  });

,并且我不再收到有关日志记录的错误消息。如果有更好的解决方法,请告诉我。

0 个答案:

没有答案