Ich möchte einige meiner HTTP-Anfrage durch und verspotten sie nicht in meinem Unit-Test, aber wenn ich versuche, passThrough() -Methode, einen Fehler der fehlenden Methode aufrufen wird geworfen:
Weiß jemand, wie ich es bitte reparieren kann?
Es ist mein Code:
'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
});
}));
});
Wie in [Dokumentation] (http://docs.angularjs.org/api/ngMock.$httpBackend): * Während der Unit-Tests wollen wir unsere Unit-Tests schnell laufen und haben keine externen Abhängigkeiten Daher möchten wir keine XHR- oder JSONP-Anfragen an einen echten Server * senden. Der $ httpBackend-Dienst, der in Komponententests verwendet wird, kann nicht übergeben werden. Das vom End-to-End-Test verwendete $ httpBackend kann dies jedoch. –
Das macht Testing-Richtlinien mit externen Templates schwieriger als nötig, finden Sie nicht? – SimplGy