断言失败后摩卡测试冻结

Mocha test freezes after failing assert

所以我正在使用 mocha 来测试我的简单 express 应用程序。 在第一次失败之前,测试工作正常。失败后,测试会冻结在某些断言(承诺)循环中。

如果 sumInPromise 函数不是 promise,那么它会正常工作。对我做错了什么有什么建议吗?

代码:

describe("Dummy test", () => {

  before((done: Done) => {
    app ? done() : initStart()
      .then(() => {
        while (app == null) {
          //empty
        }
        
        done();
      })
      .catch((err) => done(err));
  });

  after((done: Done) => {
    app ? done() : closeServer()
      .then(() => done())
      .catch((err) => done(err));
  });

  const sumInPromise = (a: number, b: number) => {
    return Promise.resolve(a + b);
  };

  it("OK, dummyPromise", async (done: Done) => {
    const sum = await sumInPromise(2, 2);

    assert.equal(sum, 5);

    done();
  });
});

我用旧的方式编写 mocha 测试...我无法完全解释原因和方式,但应该返回承诺。这是我当前有效的代码:

  it("OK, dummyPromise", () => {
    return sumInPromise(2, 2).then(sum => assert.equal(sum, 5));
  });