Тест маршрутизации AngularJS Неизвестный поставщик - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь установить тест жасмина на маршрутизаторе, как это

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'
],

А теперь, когда я запускаю тест с запуском кармы , выдает ошибку:

Ошибка:[$ injector: unpr] Неизвестный поставщик: $ routeProvider <- $ route </p>

Весь мой код JS инкапсулирован в IIFE, поэтому у меня нет ни одной глобальной переменной (я не знаю, если этодело).

Почему у меня эта ошибка, что я делаю не так?

1 Ответ

0 голосов
/ 19 мая 2018

Измените его на

describe('Testing Routes', function () {
beforeEach(module('myApp'));
it('should map routes to controllers and templates', function($route) {
  expect($route.routes['/'].controller).toBe('mainPageCtrl');
...