Я пытаюсь установить жасминовый тест на маршрутизаторе, как это
it('should map routes to controllers and templates', function() {
inject(function($route) {
module('igt');
expect($route.routes['/'].controller).toBe('mainPageCtrl');
expect($route.routes['/'].templateUrl).toEqual('html/pages/main.html');
// otherwise redirect to
expect($route.routes[null].redirectTo).toEqual('/')
});
});
и мой файл маршрутизатора (только начало, потому что он длинный):
(function () {
'use strict';
angular
.module('igt')
.config(configure);
configure.$inject = ['$routeProvider', '$httpProvider'];
function configure($routeProvider, $httpProvider) {
$routeProvider
.when('/', {
templateUrl: 'html/pages/main.html',
controller: 'mainPageCtrl'
})
И я добавил эти файлы в файл karma.conf.js:
// list of files / patterns to load in the browser
files: [
'../../node_modules/angular/angular.js',
'../../node_modules/angular-mocks/angular-mocks.js',
'../app.js',
'../router.js',
'unit/*.js'
],
И теперь, когда я запускаю тест с помощью karma start, это дает мне ошибку:
Ошибка: [$injector:unpr] Неизвестный провайдер: $routeProvider ‹- $route
Весь мой JS-код инкапсулирован в IIFE, поэтому у меня нет даже одной глобальной переменной (не знаю, имеет ли это значение).
Почему у меня эта ошибка, что я делаю не так?
PhantomJS 2.1.1 (Windows 8 0.0.0) Testing Routes should map routes to controllers and templates FAILED TypeError: undefined is not an object (evaluating '$route.routes['/']') in unit/testAngularUnitSpec.js (line 4)
19.05.2018