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);
});
});
在您的变体测试中,因为 assert
在 done()
之后;
使用异步测试 here
我有这个代码:
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);
});
});
在您的变体测试中,因为 assert
在 done()
之后;
使用异步测试 here