मैं प्रासंगिक भाग को खोजने के लिए घंटों तक कोड नहीं पढ़ना चाहता हूं, लेकिन मुझे उत्सुकता है कि कैसे जैस्मीन अपनी घड़ी लागू करता है। इसके साथ दिलचस्प बात यह है कि यह सिंक परीक्षण कोड के साथ एसिंक कोड का परीक्षण कर सकता है। AFAIK, वर्तमान node.js के साथ, जो ES5 का समर्थन करता है, यह संभव नहीं है (async फ़ंक्शन ES7 में परिभाषित किए गए हैं)। क्या यह जेएस कोड को एस्ट्रैवर्स जैसे कुछ के साथ पार्स करता है और सिंक से एसिंक टेस्ट बनाता है?कैसे जैस्मीन घड़ी काम करता है?
बस मैं क्या बात कर रहा हूँ का एक उदाहरण:
it("can test async code with sync testing code", function() {
jasmine.clock().install();
var i = 0;
var asyncIncrease = function() {
setTimeout(function() {
++i;
}, 1);
};
expect(i).toBe(0);
asyncIncrease();
expect(i).toBe(0);
jasmine.clock().tick(2);
expect(i).toBe(1);
jasmine.clock().uninstall();
});
यहाँ expect(i).toBe(1);
एक कॉलबैक में होना चाहिए।
तो यह वास्तविक एसिंक कोड द्वारा काम नहीं करेगा, उदाहरण के लिए डीबी कनेक्शन द्वारा? – inf3rno
@ inf3rno AJAX सामान के लिए, आप या तो AJAX कॉल (सर्वर काम मानते हैं) या एकीकरण परीक्षण के लिए नकल करना चाहते हैं, वास्तव में इसे async होने दें। – m59
ठीक है। मैं ईएस 5 के लिए एसिंक फ्रेमवर्क पर काम कर रहा हूं, इसलिए मैंने पूछा। धन्यवाद! :-) – inf3rno