Я пытаюсь настроить единую тестовую среду для своего проекта, и у меня возникают некоторые проблемы. Я пытаюсь использовать Testacular с Jasmine для тестирования моего кода AngularJS.Проблемы с Testacular с жасмином и угловым
У меня есть модуль Services
, который имеет заводской метод под названием KeepAlive. Вот его настройка.
angular.module('services', []).factory('KeepAlive', ['$rootScope', function($rootScope){
//My Code
}]);
Этот модуль прикреплен к модулю под названием MainModule
. Вот его код.
angular.module('MainModule', ['filters', 'services', 'directives', 'ui'])
.config(['$httpProvider', function($httpProvider){
//My Code
}]).run(['$rootScope', '$timeout', '$routeParams', 'KeepAlive', function($rootScope, $timeout, $routeParams, KeepAlive){
//My Code
}]);
Итак, теперь я хочу добавить этот код для своих тестов. Итак, вот мой тестовый файл.
JASMINE,
JASMINE_ADAPTER,
'assets/lib/jquery/jquery-1.7.1.js',
'assets/lib/angular/angular.js',
'assets/lib/angular/angular-ui.js',
'jsTests/MockingLib/angular-mocks.js',
'assets/scripts/modules/Admin.js',
'assets/scripts/modules/MainModule.js',
'assets/scripts/services/KeepAlive.js',
'assets/scripts/services/Admin.js',
'assets/scripts/filters.js',
'assets/scripts/directives.js',
'assets/scripts/controllers/admin/*.js',
Теперь это ошибка в моей тестовой консоли. Вот ошибка, которую я получаю.
Error: Unknown provider: KeepAliveProvider <- KeepAlive
at Error (<anonymous>)
at d:/Work/Workspace/TalentNetwork/assets/lib/angular/angular.js:2627:8
at Object.getService [as get] (d:/Work/Workspace/TalentNetwork/assets/lib/angular/angular.js:2755:32)
at d:/Work/Workspace/TalentNetwork/assets/lib/angular/angular.js:2632:38
at getService (d:/Work/Workspace/TalentNetwork/assets/lib/angular/angular.js:2755:32)
at Object.invoke (d:/Work/Workspace/TalentNetwork/assets/lib/angular/angular.js:2773:6)
at d:/Work/Workspace/TalentNetwork/assets/lib/angular/angular.js:2637:71
at Array.forEach (native)
at forEach (d:/Work/Workspace/TalentNetwork/assets/lib/angular/angular.js:110:11)
at Object.createInjector [as injector] (d:/Work/Workspace/TalentNetwork/assets/lib/angular/angular.js:2637:3)
Это мой тестовый чехол Jasmine.
beforeEach(function() {
admin = module("MainModule");
module("services");
});
Что мне не хватает? Я новичок в testacular. Заранее спасибо.
Убедитесь, что вы вызываете 'модуль ('услуги')' в 'beforeEach' блок в ваших тестах. –
BTW, если я удалю KeepAlive из моего метода запуска, а также из моего списка файлов, он выполнит все мои тестовые примеры – Abilash
Я уверен, что @Vojta и я правы - модуль не загружается. Ваш код на Github? –