के साथ प्रयास करें/पकड़ें मेरे पास एक ऐसा फ़ंक्शन है जो JSON ऑब्जेक्ट के रूप में पैरामीटर को पार्स करने का प्रयास करता है। अगर यह असफल रहा, तो यह इसके बजाय फ़ॉलबैक का उपयोग करता है।जैस्मीन
पार्स-code.js
function parseCode(code) {
try {
usingJSONFallback(code);
} catch() {
usingStringFallback(code);
}
}
function usingJSONFallback(code) {
JSON.parse(code);
//...more code here
}
function usingStringFallback(code) {
//... more code here
}
main.js
//Some code...
parseCode('hello world!');
मैं इस कोड में किसी भी मुद्दे नहीं दिखाई दे रहा। हालांकि, जब मैं 'कैच' मामले के लिए कुछ यूनिट परीक्षण (जैस्मीन 2.3 का उपयोग करके) जोड़ने की कोशिश कर रहा हूं, जैस्मीन जेएसओएन पार्सिंग त्रुटि को अपने आप से पकड़ता है और परीक्षण को रोकता है:
उदाहरण के लिए, जैस्मीन परीक्षण के लिए :
describe('parseCode', function() {
it('Parses a string', function() {
var code = 'My code without JSON';
expect(parseCode(code)).toThrow();
});
});
या यहां तक कि एक परीक्षण की तरह:
describe('usingJSONFallback', function() {
it('Throw an error if there is a string', function() {
var code = 'My code without JSON';
expect(usingJSONFallback(code)).toThrow();
});
});
दोनों मामलों में, परीक्षण विफल रहता है और रिटर्न:
SyntaxError: Unable to parse JSON string
मैंने throw Error(...)
का उपयोग कर नियंत्रित अपवादों को फेंकने के बारे में पढ़ा है, लेकिन निश्चित रूप से यह मेरे मामले के लिए उपयुक्त नहीं है। इस मामले में जैस्मीन का उपयोग करने के बारे में कोई सुझाव?