angularjs - An issue with testing $resource service by $httpBackend -


मुझे लगता है मुझे कुछ याद आती है

  angular.module ('services') .factory ('UserPreferencesService', [ '$ संसाधन', फ़ंक्शन ($ संसाधन) {रिटर्न $ संसाधन ('/ rest / user-preferences /: id', {}, {getById: {method: "GET", पैराम्स: {आईडी: 'आईडी'} }});}]);  

परीक्षा:

  इसे ('आईडी से प्राप्त करना चाहिए', फ़ंक्शन () {// दिया गया वरीयता = {भाषा: "एन"} ; HttpBackend.whenGET ('/ बाकी / उपयोगकर्ता-प्राथमिकताएं / 1')। प्रतिक्रिया (वरीयताएँ); // जब service.getById ({id: 1})। $ वादा। तब (फ़ंक्शन (परिणाम) {console.log ( "Successssssssssssssssssssssssssssssssssssssss"); // फिर उम्मीद है (परिणाम) .toqual (वरीयताएँ);}, फ़ंक्शन () {console.log ("कुछ गलत");})});  

यह कभी भी चालू नहीं होता है: "successssssssssssssssssssssssssssssssssssss"।

मुझे क्या याद आया?

कुछ चीजें गलत थीं और अन्य चीज़ें गायब थीं आपके कोड में

मुख्य समस्या यह थी कि आप फ्लश () फ़ंक्शन को कॉल नहीं कर रहे थे जो कि सर्वर से प्रतिक्रिया को emulates करता है, इसलिए $ वादा कभी हल नहीं किया गया था । इसके अलावा, ध्यान रखें कि जब वादा का समाधान हो जाता है, तो आप जिस प्रतिक्रिया से वादा करता है, इसका मतलब यह है कि: उम्मीद (परिणाम) .केल (वरीयताएँ); काम नहीं करेगा, लेकिन यह: उम्मीद (result.lang) .toEqual (preferences.lang); होगा।

यहां आपके पास आपका कोड का एक निश्चित संस्करण है:

सेवा:

  कोणीय। मॉड्यूल ('सेवाएं', ['एनजीआरएसओआरएस'])। फैक्टर ('यूजरफ्रीफिंससेवा', ['$ संसाधन', फ़ंक्शन ($ संसाधन)) रिटर्न $ संसाधन ('/ बाकी / उपयोगकर्ता-प्राथमिकताएं:: आईडी ', {}, {getById: {method: "GET", पैराम्स: {id:' id}}}});}]));  

टेस्ट:

  वर्णन ('मेरा सूट', फ़ंक्शन () {var httpBackend, सेवा; पहले (मॉड्यूल ('सेवाओं')); पहले (प्रत्येक (इंजेक्शन (_ $ httpBackend_, UserPreferencesService) {httpBackend = _ $ httpBackend_; service = UserPreferencesService;})) वर्णन करें ('मेरा टेस्ट', फ़ंक्शन () (यह ('आईडी के आधार पर होना चाहिए', फ़ंक्शन) {Var प्राथमिकताएं = {भाषा: "एन"}; var परिणाम = {}; httpBackend.whenGET ('/ बाकी / उपयोगकर्ता-प्राथमिकताएं / 1')। प्रतिक्रिया दें (प्राथमिकताएं); service.getById ({id: 1})। $ वादा। तब (कार्य (परिणाम_) {परिणाम = परिणाम_;}); उम्मीद है (परिणाम.भाषी) .नोट नहीं। प्रश्न (प्राथमिकताएं। भाषा); httpBackend.flush (); उम्मीद (परिणाम.भाषी)। भाषा);});});});  


Comments

Popular posts from this blog

python - Strange behavior using PyQt4's 'pyqtSlot' decorator before another decorator -

c# - UnhandledExceptionMode.ThrowException for AppDomain.UnhandledException -

c# - Process.Kill() returns access denied -