हमारे आंतरिक कोणीय परियोजना में, सेवाओं में से एक में $http.head()
कॉल है जिसे मैं परीक्षण करने का प्रयास कर रहा हूं।उम्मीद है कि एचईएडी दस्तावेज है लेकिन लागू नहीं किया गया है?
परीक्षण के लिए, मैं द्वारा प्रदत्त Fake HTTP backend का उपयोग कर रहा हूं।
it('handle status code 200', inject(function ($httpBackend, ConnectionService) {
spyOn(Math, 'random').andReturn(0.1234);
httpBackend = $httpBackend;
httpBackend.expectHEAD('ping?rand=1234').respond(200);
ConnectionService.sendRequest();
httpBackend.flush();
expect(ConnectionService.stats.packetsReceived).toEqual(5);
httpBackend.verifyNoOutstandingExpectation();
httpBackend.verifyNoOutstandingRequest();
}));
निम्न त्रुटि में परीक्षण के परिणाम चल रहा है:: यहाँ प्रासंगिक कोड है
- :
PhantomJS 1.9.7 (Mac OS X) connection service tests sendRequest function handle status code 200 FAILED TypeError: 'undefined' is not a function (evaluating 'httpBackend.expectHEAD('ping?rand=1234')') at /path/to/app/app-connection-service_test.js:66 at d (/path/to/app/bower_components/angular/angular.min.js:35) at workFn (/path/to/app/bower_components/angular-mocks/angular-mocks.js:2159)
एक छोटा सा खुदाई के बाद, मैं प्रासंगिक GitHub मुद्दा मिल गया है fix($httpBackend): Add missing expectHEAD() and expectOPTIONS() methods
जो, जहां तक मैं समझता हूं, मतलब था था टी वास्तव में expectHEAD()
कोणीय-मैक्स में विधि नहीं है - यह दस्तावेज है, लेकिन, वास्तव में, यह अभी तक एक स्थिर कोणीय रिलीज का हिस्सा नहीं है।
आगे बढ़ने का सबसे अच्छा तरीका क्या है?
ध्यान दें कि मुझे कोणीय < = 1.2 के साथ रहना है, क्योंकि इस ऐप को IE8 पर चलाने की आवश्यकता है (कोणीय 1.3 dropping support for IE8 है)।
समाधानों के बारे में मैं वर्तमान में सोच रहा हूँ में से एक get()
साथ head()
को बदलने के लिए है। इस मामले में, मैं इसे मौजूदा expectGET()
विधि के साथ परीक्षण कर सकता हूं। लेकिन मुझे कमियों के बारे में निश्चित नहीं है।
धन्यवाद, मेरे लिए काम किया, यह निश्चित रूप से यहां एक आसान विकल्प है। हालांकि मैं इस बात से सहमत नहीं हूं कि @ डेव का जवाब एक डाउनवोट का हकदार है - उसने अभी भी मदद करने की कोशिश की और उसका दृष्टिकोण वैध बना हुआ है। – alecxe
हाँ जो समझ में आता है, मैं अभी भी नया अपेक्षाकृत नया हूं; मैंने अपना डाउन वोट हटा दिया –
डाउनवोट को हटाने के लिए धन्यवाद। मैंने आपका जवाब स्वीकार कर लिया है क्योंकि आप पहले आसान समाधान का प्रस्ताव देने वाले थे। अतिरिक्त प्रयासों के लिए डेव को बकाया पुरस्कार। उम्मीद है कि आप के लिए उचित लगता है। एक बार फिर धन्यवाद। – alecxe