Issue in jasmine unit test in angularjs -
var a, b = []; A = गलत; [Var1: a, arrayVal: b]। ForEach (फ़ंक्शन (परिदृश्य) {scenario.var1 = true; परिदृश्य। ArrrayVal.push ("1", "2");}); यह ("परिणाम", फ़ंक्शन () (उम्मीद है (ए)। टीबी (सच); // पहला टेस्ट उम्मीद (बी) .ट्यूक्वेल (["1", "2"]); // दूसरा टेस्ट}); उपरोक्त कोड में, द्वितीय परीक्षा की सफलता, 1 टेस्ट विफल हो जाती है, कह रही है "सत्य होने की उम्मीद की झूठी"
कोई सुझाव?
सबसे पहले, आपको अपने कोड में एक गलती है आप वैर 1 और सरणी के लिए मूल्यों को निर्दिष्ट करके एक वस्तु की तरह सरणी का इलाज कर रहे हैं। अग्रसारण का ब्यौरा इस तरह दिखना चाहिए:
[{var1: a, arrayVal: b}]। प्रत्येक (कार्य (परिदृश्य) {scenario.var1 = true; परिदृश्य। Arrrayal.push ("1 "," 2 ");}); आपकी पहली परीक्षा क्यों असफल है, इसका संबंध है क्योंकि आप संपूर्ण मूल्य और 'ए' के संदर्भ को बदल रहे हैं, जबकि 'अरियलवॉल' के साथ आप मौजूदा मान को जोड़ते हैं मूल्यों को सरणी में धकेलना यहां एक कोड उदाहरण है:
var a = [true]; Var var1; // उम्मीद है ... a: [true], var1: अपरिभाषित console.log ('a:' + a + 'var1:' + var1); Var1 = a; // उम्मीद ... a: [true], var1: [true] console.log ('a:' + a + 'var1:' + var1); // किसी के संदर्भ में हेर-फेर करना var1 a.push ([false]) को प्रभावित करता है; // उम्मीद है ... a: [true, false], var1: [true, false] console.log ('a:' + a + 'var1:' + var1); // किसी के मान की जगह var1 a = [true] को प्रभावित नहीं करता; // उम्मीद है ... a: [सच], var1: [true, false] console.log ('a:' + a + 'var1:' + var1); यह भी ध्यान रखें कि बूलियन्स प्राथमिक (आदिम) डेटा प्रकार हैं और आप 2 गुणों से मान का संदर्भ नहीं दे सकते। सरणी और ऑब्जेक्ट संमिश्र डेटा प्रकार हैं, जिसका अर्थ है कि कई गुण एक मान का संदर्भ दे सकते हैं।
Comments
Post a Comment