Chciałbym przekazać część mojego żądania http poprzez, a nie kpić z nich w moim teście jednostki, ale kiedy próbuję wywołać metodę passThrough(), błąd braku metody jest wyrzucane:
"TypeError: Object # has no method 'passThrough'".
Czy ktoś wie, jak mogę to naprawić?
Jest to mój kod:
'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
});
}));
});
Jak wyjaśniono w [dokumentacja] (http://docs.angularjs.org/api/ngMock.$httpBackend): * Podczas testów jednostkowych, chcemy nasze testy jednostkowe, aby szybko i nie ma zależności zewnętrzne więc nie chcemy wysyłać żądań XHR lub JSONP do prawdziwego serwera *. Usługa $ httpBackend używana w testach jednostkowych nie może przejść. Można jednak użyć $ httpBackend używanego przez test end-to-end. –
To sprawia, że testowanie dyrektyw z szablonami zewnętrznymi jest trudniejsze niż to konieczne, nie sądzisz? – SimplGy