नए मोचा संस्करणों के लिए:
अब आप मोचा को एक वादा वापस कर सकते हैं, और मोचा आगे बढ़ने से पहले इसके पूरा होने की प्रतीक्षा करेगा। उदाहरण के लिए, निम्नलिखित परीक्षा पास होगी:
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() {});
यद्यपि आपको सावधान रहना चाहिए, क्योंकि यूनिट टेस्टिंग के लिए डेटाबेस को स्टबलिंग करना दृढ़ता से निष्पादन को धीमा नहीं कर सकता है, क्योंकि डेटाबेस में अनुरोध सरल कोड निष्पादन की तुलना में बहुत लंबा हो सकता है।
अधिक जानकारी के लिए, मोचा प्रलेखन देखें ।
before
हैंडलर से एक वादा वापस कर दें । जैसेbefore(function () { return db.collection...}