Đối với các phiên bản mocha mới:
Bây giờ bạn có thể trả lại lời hứa cho mocha và mocha sẽ đợi nó hoàn thành trước khi tiếp tục. Ví dụ, bài kiểm tra sau sẽ vượt qua:
let a = 0;
before(() => {
return new Promise((resolve) => {
setTimeout(() => {
a = 1;
resolve();
}, 200);
});
});
it('a should be set to 1', () => {
assert(a === 1);
});
Bạn có thể tìm tài liệu tại đây
Đối với các phiên bản mocha cũ hơn:
Nếu bạn muốn yêu cầu không đồng bộ của mình được hoàn thành trước khi mọi thứ khác xảy ra, bạn cần sử dụng done
tham số trong yêu cầu trước của mình và gọi nó trong lệnh gọi lại.
Sau đó Mocha sẽ đợi cho đến khi done
được gọi để bắt đầu xử lý các khối sau.
before(function (done) {
db.collection('user').remove({}, function (res) { done(); });
})
it('test spec', function (done) {
});
after(function() {});
Tuy nhiên, bạn nên cẩn thận, vì không khai thác cơ sở dữ liệu để kiểm tra đơn vị có thể làm chậm quá trình thực thi, vì các yêu cầu trong cơ sở dữ liệu có thể khá lâu so với thực thi mã đơn giản.
Để biết thêm thông tin, hãy xem tài liệu Mocha .
before
xử lý của bạn . Ví dụbefore(function () { return db.collection...}