สำหรับมอคค่าเวอร์ชันใหม่:
ตอนนี้คุณสามารถคืนสัญญากับมอคค่าได้และมอคค่าจะรอให้มันเสร็จสมบูรณ์ก่อนที่จะดำเนินการต่อ ตัวอย่างเช่นการทดสอบต่อไปนี้จะผ่าน:
let a = 0;
before(() => {
return new Promise((resolve) => {
setTimeout(() => {
a = 1;
resolve();
}, 200);
});
});
it('a should be set to 1', () => {
assert(a === 1);
});
คุณสามารถดูเอกสารได้ที่นี่
สำหรับมอคค่ารุ่นเก่า:
หากคุณต้องการให้คำขอแบบอะซิงโครนัสของคุณเสร็จสมบูรณ์ก่อนที่ทุกอย่างจะเกิดขึ้นคุณต้องใช้done
พารามิเตอร์ในคำขอก่อนของคุณและเรียกมันในการเรียกกลับ
จากนั้นมอคค่าจะรอจนกว่าdone
จะถูกเรียกเพื่อเริ่มประมวลผลบล็อกต่อไปนี้
before(function (done) {
db.collection('user').remove({}, function (res) { done(); });
})
it('test spec', function (done) {
});
after(function() {});
คุณควรระมัดระวังเนื่องจากการไม่ทำลายฐานข้อมูลสำหรับการทดสอบหน่วยอาจทำให้การดำเนินการช้าลงอย่างมากเนื่องจากคำขอในฐานข้อมูลอาจค่อนข้างยาวเมื่อเทียบกับการเรียกใช้โค้ดแบบธรรมดา
สำหรับข้อมูลเพิ่มเติมโปรดดูที่เอกสาร Mocha
before
ผู้ดูแลของคุณ เช่นbefore(function () { return db.collection...}