मैं अपने ऐप के लिए कुछ परीक्षण लिख रहा हूं, और मैंने angularjs-mocks.js को शामिल किया है, इसलिए मैं इसके साथ आने वाले अच्छे डीएसएल कार्यों का उपयोग कर सकता हूं।वास्तव में कुछ भी मजाक किए बिना angularjs mocks का उपयोग
लेकिन मैं वास्तव में $ http अनुरोधों का नकल नहीं करना चाहता, क्योंकि मैं इस ऐप को क्लाइंट के बैकएंड के साथ एकीकृत कर रहा हूं जो लगातार प्रवाह में है, और मैं वास्तविक प्रतिक्रियाओं के खिलाफ परीक्षण करना चाहता हूं।
इस स्थिति में असली http बैकएंड का उपयोग करने का सबसे अच्छा (आसान तरीका) क्या है?
संपादित करें:
$httpBackend.whenPOST(/.*/).passThrough()
लेकिन जैसा कि मैंने नीचे उल्लेख है, यह काम नहीं कर रहा संभवतः टूटा:
मैं एक संभावित समाधान है, इस का उपयोग करने के लिए है जो मिल गया है? कोणीय में लाइन जहां $ httpBackend ओवरराइड की गई है (1365 बाहर टिप्पणी करते हुए: https://github.com/angular/angular.js/issues/1434
आप हमेशा एक सामान्य जावास्क्रिप्ट बनाकर इंजेक्ट करने के लिए एक नकली $ http बना सकते हैं जो XHR http अनुरोध करता है, कोई कोणीय मैक आवश्यक नहीं है। जावास्क्रिप्ट में परीक्षण के बारे में यह अच्छी बात है, आप वस्तुओं को एक साथ थप्पड़ मार सकते हैं और उन्हें इंजेक्ट कर सकते हैं हालांकि आप गतिशील टाइपिंग के कारण कृपया। –
ठीक है, लेकिन समस्या यह है कि angularmocks $ httpBackend ओवरराइड करता है, जो $ http का उपयोग करता है। अब मैं इसे $ httpBackend.whenGET (/.*/) के साथ प्राप्त करने की कोशिश कर रहा हूं। PassThrough(), लेकिन ऐसा लगता है कि तो टूटा हुआ है, या मैं इसे सही तरीके से उपयोग नहीं कर रहा हूं। – doubledriscoll
मुझे लगता है कि मैं जो सुझाव दे रहा हूं वह है कि आप वनीला जेएस का उपयोग केवल उस ऑब्जेक्ट को बनाने के लिए कर सकते हैं जिस पर आपको आवश्यकता है। कोई कोणीय नकली की आवश्यकता नहीं है। –