Я использую декоратор для службы Angular $httpBackend, чтобы изменить URL-адреса всех http-вызовов:
app.config(function($provide) {
$provide.decorator('$httpBackend', function($delegate) {
return function(method, url, post, callback, headers, timeout, withCredentials, responseType) {
url = changeUrl(url);
$delegate(method, url, post, callback, headers, timeout, withCredentials, responseType);
};
})
});
В некоторых тестах Jasmine мне нужно имитировать сервис $httpBackend:
describe('...', function() {
beforeEach(module('...'));
beforeEach(inject(function($injector) {
$httpBackend = $injector.get('$httpBackend');
$httpBackend.when('GET', '...').respond(function(method, url) {
return ...
});
}));
}
Теперь я получаю сообщение об ошибке «$httpBackend.when не является функцией» при выполнении этих тестов.
Есть идеи, как это исправить? Я бы предпочел решение без тестового кода в моей конфигурации приложения.