mocha 智能执行异步代码吗?

does mocha intelligently execute async code?

我有这个代码:

const mocha = require("mocha");
const assert = require("assert");


describe("saving records", function (done) {
 
  it("Saves a record to the database", function (done) {
    
    let mx = false;

    setTimeout(() => {
      mx = false; //#### note this line
    }, 6000);
    done();

    assert(mx === true);
  });
});

我不确定为什么,但 mocha 在终端中给出了一个测试通过,上面写着:

saving records ✓ Saves a record to the database
1 passing (30ms)

问题一:为什么此时测试通过

下一个奇怪的事情是:在测试通过之前它甚至没有等待 6 秒秒。因为,我使用了 done 参数, 问题编号。 2:不应该等到执行完了吗?

我是不是理解错了some information?

const mocha = require("mocha");
const assert = require("assert");

describe("saving records", function (done) {
  it("Saves a record to the database", function (done) {
    let mx = false;

    setTimeout(() => {
      mx = false; //#### note this line
      assert(mx === true);
      done();
    }, 6000);
  });
});

在您的变体测试中,因为 assertdone() 之后; 使用异步测试 here