मैं किए गए() फ़ंक्शन के साथ एक सरल वादे कार्यान्वयन (एसिंक्रोनस कोड) पर एक जैस्मीन परीक्षण को लागू करने की कोशिश कर रहा हूं और मेरा परीक्षण विफल रहता है हालांकि कोड का परीक्षण किया जा रहा है पूरी तरह से ठीक। क्या कोई मेरी मदद कर सकता है कि मेरी परीक्षा में क्या गुम है?जैस्मीन 2.0.0 में किए गए एसिंक्रोनस कार्यक्षमता के साथ परीक्षण()
var Test = (function() {
function Test(fn) {
this.tool = null;
fn(this.resolve.bind(this));
}
Test.prototype.then = function (cb) {
this.callback = cb;
};
Test.prototype.resolve = function (value) {
var me = this;
setTimeout(function() {
me.callback(value);
}, 5000);
};
return Test;
})();
describe("setTimeout", function() {
var test, newValue = false,
originalTimeout;
beforeEach(function (done) {
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
test = new Test(function (cb) {
setTimeout(function() {
cb();
}, 5000);
});
test.then(function() {
newValue = true;
console.log(1, newValue);
done();
});
});
it("Should be true", function (done) {
expect(1).toBe(1);
expect(newValue).toBeTruthy();
});
afterEach(function() {
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
});
});
jsfiddle में एक ही परीक्षण: http://jsfiddle.net/ravitb/zsachqpg/
इसके अलावा, यदि आपको * प्रति-परीक्षण आधार पर टाइमआउट अंतराल को बदलने की आवश्यकता है, तो आप कस्टम अंतराल को तीसरे पैरामीटर के रूप में 'it() '(यानी आपके कार्य के बाद:' (desc , फ़ंक्शन (किया गया) {...}, 10000); '।) – Kev
@Lior कृपया इसकी सहायता करें: https://stackoverflow.com/questions/45311260/how-to-test-an-asynchronous-function-using- कर्म-चमेली-इन-ionic2 – Aditya