Мне нужно приложение для запуска некоторой конфигурации во время выполнения vi конечной точки HTTP.
Я написал простой сервис, чтобы сделать это:
module.factory('config', function ($http, analytics) {
return {
load: function () {
$http.get('/config').then(function (response) {
analytics.setAccount(response.googleAnalyticsAccount);
});
}
}
});
Затем я вызываю этот модуль в блоке выполнения моего модуля приложения:
angular.module('app').***.run(function(config) {
config.load();
});
Все работает хорошо, когда приложение работает, но в моих модульных тестах я получаю эту ошибку: "Ошибка: неожиданный запрос: GET/config"
Я знаю, что это значит, но я не знаю, как издеваться над ним, когда это происходит из блока выполнения.
Спасибо за помощь
ИЗМЕНИТЬ, чтобы добавить спецификацию
Вызов этого перед каждым
beforeEach(angular.mock.module('app'));
Попробовал это, чтобы высмеять $httpBackend:
beforeEach(inject(function($httpBackend) {
$httpBackend.expectGET('/config').respond(200, {'googleAnalyticsAccount':});
angular.mock.module('app')
$httpBackend.flush();
}));
Но получил:
TypeError: Cannot read property 'stack' of null
at workFn (/Users/arnaud/workspace/unishared-dredit/test/lib/angular/angular-mocks.js:1756:55)
TypeError: Cannot read property 'stack' of null
at workFn (/Users/arnaud/workspace/unishared-dredit/test/lib/angular/angular-mocks.js:1756:55)
TypeError: Cannot read property 'stack' of null
at workFn (/Users/arnaud/workspace/unishared-dredit/test/lib/angular/angular-mocks.js:1756:55)
EDIT с момента обновления до AngularJS 1.0.6
Поскольку я обновился до AngularJS 1.0.6, посоветовал Игорь из команды Angular, проблема исчезла, но теперь у меня есть этот, который звучит более "нормальным", но я все еще не могу выяснить, как это сделать.
Error: Injector already created, can not register a module!