Я новичок в угловом и модульном тестировании.Контрольно-измерительные контроллеры с услугами
У меня есть модуль приложения MyApp
включая основные за вещами услуги, которые необходимы во всех других модулях, как сервис для регистрации loggingService
у меня также есть модуль для обработки все о карте & гео-positon, называется MapModule
и у меня есть основной модуль для логики приложения, которая называется MainModule
MainModule
содержит контроллер, который мне нравится тест: messageSendCtrl
контроллер имеет некоторую зависимость, как услуги от MapModule
.
И: MainModule
и MapModule
имеет зависимости от MyApp
, так как везде требуется loggingService
.
Код выглядит следующим образом (псевдо-код):
MyApp
var MyApp = angular
.module('MyApp', ['ngRoute','MainModule','MapModule']);
MyApp.service('loggingService', function (one, two) {
[..] /*logging data somewhere for debugging application*/
});
MainModule
var MainModule = angular
.module('MainModule', []);
MainModule.controller('messageSendCtrl',
function($scope,$http, $location, locationService, loggingService) {
[...]
});
MapModule
var MapModule = angular
.module('MapModule', ['uiGmapgoogle-maps']);
MapModule.service('locationService', function (loggingService) {
[...]
То, что я хотел бы проверить это messageSendCtrl
от MainModule
. (возможно), я смог ввести службу определения местоположения в тестовую среду. Но инъекция locationService
не увенчалась успехом.
Возможно, потому, что locationService
также использует loggingService
.
Запуск результаты испытаний в
Error: [$injector:unpr] Unknown provider: loggingServiceProvider <- loggingService <- locationService
Мой тест выглядит так:
describe('saving a document', function() {
beforeEach(module('MainModule'));
beforeEach(module('MyApp'));
beforeEach(module('MapModule'));
describe ('messageSendCtrl', function() {
var scope,ctrl,locationService,loggingService;
beforeEach(inject(function($rootScope, $controller,_locationService_,_loggingService_) {
scope = $rootScope.$new();
ctrl = $controller('messageSendCtrl',
{$scope: scope,
locationService: _locationService_,
loggingService : _loggingService_ });
}));
it('should actual not saved', function(){
expect(scope.result).to.equal('unsaved');
});
})
});
Так кто я могу решить зависимостей? Или есть проблема с дизайном в моем приложении?
Номер 1 и 2. Вот и все! Спасибо! Номер 3: приятно знать. –