मैं अपने कुछ HTTP अनुरोधों को पारित करना चाहता हूं और उन्हें अपने यूनिट परीक्षण में नकल नहीं करना चाहता, लेकिन जब मैं passThrough() विधि को कॉल करने का प्रयास करता हूं, तो गायब विधि की त्रुटि फेंक दिया गया है:
"TypeError: Object # has no method 'passThrough'".
क्या कोई जानता है कि मैं इसे कैसे ठीक कर सकता हूं?
मेरी कोड है:
'use strict';
describe('Controller: MainCtrl', function() {
// load the controller's module
beforeEach(module('w00App'));
var scope, MainCtrl, $httpBackend;
// Initialize the controller and a mock scope
beforeEach(inject(function(_$httpBackend_, $rootScope, $controller) {
$httpBackend = _$httpBackend_;
$httpBackend.expectGET('http://api.some.com/testdata.json').passThrough();
scope = $rootScope.$new();
MainCtrl = $controller('MainCtrl', {
$scope: scope
});
}));
});
के रूप में [प्रलेखन] में विस्तार से बताया (http://docs.angularjs.org/api/ngMock.$httpBackend): * इकाई परीक्षण के दौरान, हम हमारे इकाई परीक्षण जल्दी से चलाना चाहते हैं और कोई बाहरी निर्भरता है इसलिए हम एक वास्तविक सर्वर * के लिए एक्सएचआर या जेएसओएनपी अनुरोध नहीं भेजना चाहते हैं। यूनिट परीक्षणों में उपयोग की जाने वाली $ httpBackend सेवा पास नहीं हो सकती है। एंड-टू-एंड टेस्ट द्वारा उपयोग किए जाने वाले $ httpBackend हालांकि, कर सकते हैं। –
यह बाहरी टेम्पलेट्स के साथ परीक्षण निर्देशों की आवश्यकता से अधिक कठिन बनाता है, क्या आपको नहीं लगता? – SimplGy