すべての http 呼び出しの URL を変更するために、Angular サービス $httpBackend のデコレーターを使用しています。
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 は関数ではありません」というエラーが表示されます。
これを修正する方法はありますか?アプリの構成にテスト固有のコードを持たないソリューションを希望します。