चमेलीज - अपवाद जाँच

विभिन्न कम्प्यूटेशनल मैचर्स के अलावा, जैस्मीन कार्यक्रम के अपवाद की जांच करने के लिए कुछ उपयोगी मैचर्स प्रदान करती है। कोड के निम्नलिखित सेट के साथ अपने जावास्क्रिप्ट को संशोधित करते हैं।

var throwMeAnError = function() {   
   throw new Error(); 
};  

describe("Different Methods of Expect Block", function() {  
   var exp = 25; 

   it ("Hey this will throw an Error ", function() { 
      expect(throwMeAnError).toThrow(); 
   }); 
});

उपरोक्त उदाहरण में, हमने एक विधि बनाई है जो जानबूझकर उस पद्धति से एक अपवाद फेंकती है और अपेक्षित ब्लॉक में हम त्रुटि को पकड़ने की उम्मीद करते हैं। यदि सबकुछ ठीक हो जाता है तो कोड का यह टुकड़ा निम्नलिखित आउटपुट प्राप्त करेगा।

अब, इस परीक्षण के मामले में विफल होने के लिए, हमें फ़ंक्शन में कथन को फेंकने की आवश्यकता है throwMeAnError। निम्नलिखित कोड है जो एक आउटपुट के रूप में लाल स्क्रीनशॉट का उत्पादन करेगा क्योंकि कोड हमारी आवश्यकता को पूरा नहीं करता है।

var throwMeAnError = function() {   
   //throw new Error(); 
};   

describe("Different Methods of Expect Block",function() {  
   var exp = 25; 
   
   it("Hey this will throw an Error ", function() {  
      expect(throwMeAnError).toThrow();    
   }); 
});

जैसा कि देखा जा सकता है, हमने उस लाइन पर टिप्पणी की है, जहां से हमारा तरीका अपवाद फेंक रहा था। निम्नलिखित SpecRunner.html के सफल निष्पादन पर उपरोक्त कोड का आउटपुट है।

Jasmine.Any ()

Anyएक विशेष मिलान है जिसका उपयोग तब किया जाता है जब हम आउटपुट के बारे में निश्चित नहीं होते हैं। निम्नलिखित उदाहरण में, हम सीखेंगे कि यह कैसे काम करता है। हमें संशोधित करते हैंcustomerMatcher.js निम्नलिखित कोड के टुकड़े के साथ।

var addAny = function() {
   var sum = this.currentVal; 
	
   for (var i = 0; i < arguments.length; i++) { 
      sum += arguments[i]; 
   } 
	
   this.currentVal = sum;  
   return this.currentVal; 
} 

describe("Different Methods of Expect Block",function () { 
   
   it("Example of any()", function() { 
      expect(addAny(9,9)).toEqual(jasmine.any(Number)); 
   });
});

यहां हमने एक फ़ंक्शन घोषित किया है जो हमें तर्कों के रूप में प्रदान की गई संख्याओं का योग देगा। अपेक्षा ब्लॉक में, हम उम्मीद कर रहे हैं कि परिणाम कुछ भी हो सकता है लेकिन यह एक संख्या होनी चाहिए।

जैसा कि 18 उपज के बाद 9 और 9 दोनों एक संख्या है, यह परीक्षा पास होगी और यह आउटपुट के रूप में निम्नलिखित ग्रीन स्क्रीनशॉट उत्पन्न करेगा।

अब हम कोड के निम्नलिखित टुकड़े के अनुसार कोड को बदलते हैं, जहां हम फ़ंक्शन के आउटपुट के रूप में एक स्ट्रिंग प्रकार चर की उम्मीद कर रहे हैं AddAny()

var addAny = function() { 
   var sum = this.currentVal; 
	
   for(var i = 0; i < arguments.length; i++) { 
      sum += arguments[i]; 
   } 
	
   this.currentVal = sum; 
   return this.currentVal; 
}  

describe("Different Methodsof Expect Block",function () { 
   it("Example of any()", function () { 
      expect(addAny(9,9)).toEqual(jasmine.any(String));    
   });
});

निम्नलिखित उपरोक्त कोड का आउटपुट है।