नई मोचा संस्करणों के लिए:
अब आप मोचा के लिए एक वादा लौट सकते हैं, और यह आगे बढ़ने से पहले पूरा करने के लिए के लिए मोचा इंतजार करेंगे। उदाहरण के लिए, निम्न परीक्षण पारित करेंगे:
let a = 0;
before(() => {
return new Promise((resolve) => {
setTimeout(() => {
a = 1;
resolve();
}, 200);
});
});
it('a should be set to 1',() => {
assert(a === 1);
});
आप पुराने मोचा संस्करणों के लिए प्रलेखन here
पा सकते हैं:
इससे पहले कि आप सब कुछ और कुछ होता है अपने अतुल्यकालिक अनुरोध पूरा किया जाना चाहते हैं , आपको अपने पहले अनुरोध में done
पैरामीटर का उपयोग करने की आवश्यकता है, और इसे कॉलबैक में कॉल करें।
मोचा तब तक प्रतीक्षा करेगा जब तक done
को निम्नलिखित ब्लॉक को संसाधित करने के लिए बुलाया जाता है।
before(function (done) {
db.collection('user').remove({}, function (res) { done(); }); // It is now guaranteed to finish before 'it' starts.
})
it('test spec', function (done) {
// execute test
});
after(function() {});
आप, हालांकि सावधान रहना चाहिए के रूप में इकाई परीक्षण के लिए डेटाबेस छोटा करते नहीं दृढ़ता से निष्पादन धीमा कर सकता है, के रूप में एक डेटाबेस में अनुरोध बहुत लंबा सरल कोड निष्पादन की तुलना में किया जा सकता है।
अधिक जानकारी के लिए, Mocha documentation देखें।
स्रोत
2014-07-21 09:56:30
यह काम करना चाहिए। आपको बस यह सुनिश्चित करने की ज़रूरत है कि आप अपने 'पहले से हैंडलर' से एक वादा वापस कर दें। जैसे 'पहले (फ़ंक्शन() {वापसी db.collection ...} ' – broofa