首页 > 解决方案 > 如何在 Mocha 挂钩之前在异步中设置测试数据?

问题描述

我查看了Mocha 文档中有关按特定顺序运行异步测试的钩子和几篇文章,以及今天打开了我自己以前的问题,我已经从中获取反馈并重构了我的测试,但我m 仍然遇到问题。

我正在尝试使用 Mocha 在前挂钩中设置测试数据,问题是此数据设置需要使用 async/await(简化示例代码):

  .
  .
  .
  describe('Deleting', function() {

    let uuid;

    // setup creating the accout so I can then test deleting it below
    before(async function() {
      let foo = await api.account.create(info);
      uuid = transform.location(foo);
    });

    it('should delete an account', async function () {
      let result = await api.account.remove(uuid);
      expect(result).to.be.true;
    });
  });

问题在于这篇文章描述了“在(同步执行)链下游的测试不能保证由异步测试设置的所需条件在它们运行时已经准备好”。

我试图通过将必要的测试设置调用放在 before 钩子中来解决这个问题,但是我的测试仍然失败,因为在“it”测试删除它时没有创建帐户。这些是集成测试,所以我需要以这种方式创建设置数据,而不是使用模拟/存根。

我的方法有什么问题吗?或者您对我如何继续完成这项工作有什么建议?

标签: node.jsmocha.jsintegration-testing

解决方案


推荐阅读