2015-01-28 2 views
0

Я использую карму через Глоток-карму, но получаю следующее сообщение об ошибке:неопределенный контроллер в единичном жасмине тесте

Error: [ng:areq] Argument 'adminPagesCtrl' is not a function, got undefined

Вот моя спецификации файл:

describe('adminPagesCtrl', function() { 
    var $rootScope, 
     controller; 

    beforeEach(function() { 
     angular.module('jhApp') 
     .config(['$locationProvider', 
      function($locationProvider) { 
       $locationProvider.html5Mode(true); 
     }]); 
    }); 

    beforeEach(inject(function ($rootScope, $controller) { 
     scope = $rootScope.$new(); 
     controller = $controller; 
     controller('adminPagesCtrl', {$scope: scope}); 
    })); 

    it('does a thing', function() { 
     expect(true).toBe(true); 
    }); 
}); 

Я проверил окно браузера, что карма открывается и может видеть все загруженные файлы. Приложение работает нормально. Не знаете, что еще попробовать?

+1

Почему вы настраиваете новый модуль? Здесь вы не должны настраивать модуль. Используйте только: 'beforeEach (module ('jhApp'));' Если модуль не загружен, то контроллер не будет найден (потому что он зарегистрирован внутри модуля). –

+0

Я не очень уверен. Но если я изменю angular.module («jhApp») к модулю («jhApp») я получаю сообщение об ошибке сказав: Не удается прочитать свойство «конфигурации» неопределенной Так что если я удалить раздел конфигурации я получаю эту ошибку: $ для размещения в режиме HTML5 требуется наличие тега ! Так что, по сути, я просто работал над ошибками, и это то, где я добрался. Возможно, мне нужно исправить ошибку HTML5 по-другому. –

+0

Хорошо, извините. Похоже, что это была несовместимая версия угловых макетов с версией углового. Модернизированные угловые-mocks до версии 1.3.11 (угловые в 1.3.8), и теперь он работает –

ответ

0

Это теперь работает:

describe('adminPagesCtrl', function() { 
    var $rootScope, 
     controller; 

    beforeEach(function() { 
     module('jhApp') 
    }); 

    beforeEach(inject(function ($rootScope, $controller) { 
     scope = $rootScope.$new(); 
     controller = $controller; 
     controller('adminPagesCtrl', {$scope: scope}); 
    })); 

    it('does a thing', function() { 
     expect(true).toBe(true); 
    }); 
}); 
Смежные вопросы