Jasmine / Angular: TypeError: невозможно прочитать свойство $ modules / $ injector 'неопределенного

Я пытаюсь запустить тестовые примеры жасмина, и я попадаю на «$ modules» неопределенного значения. Я загружаю неуминированные и последние версии библиотек, как показано ниже,

<script src="lib/jquery-2.1.3.js"></script>
<script src="lib/jasmine-2.1.3.js"></script>
<script src="lib/jasmine-html.js"></script>
<script src="lib/boot.js"></script>
<script src="lib/angular-1.3.9.js"></script>
<script src="lib/angular-mocks-1.0.1.js"></script>

<!-- include source files here-->
<script src="src/test.js"></script>

<!-- include spec files here-->
<script src="specs/testSpec.js"></script>

Ниже приведен фрагмент кода моей спецификации,

describe('TestController', function () {
    var $httpBackend, $rootScope;
    beforeEach(function () { angular.module('test'); });
    beforeEach(angular.mock.inject(function ($injector, $http, $window) {
       // Set up the mock http service responses
       $httpBackend = $injector.get('$httpBackend');
    }));
});


Я получаю следующие ошибки:
TypeError: Невозможно прочитать свойство '$ modules' неопределенного значения
TypeError: Невозможно установить свойство '$ injector' в значение undefined

Любая информация поможет. Благодарность !


person Goksean    schedule 09.03.2015    source источник
comment
Привет. Можете ли вы предоставить немного больше вашего кода, чтобы убедиться, что загрузка фреймворка правильная? Кажется необычным, что вы загружаете тесты с тегом ‹script›, обычно он находится в файле karma.conf.js. Есть ли в спецификации теста больше кода, кроме того, что вы здесь вставили?   -  person syonip    schedule 09.03.2015
comment
@syonip Привет, спасибо за ответ. Я понял, в чем проблема. Это было несоответствие версий angular-mocks. Обновил версию angular-mocks и ошибка исчезла.   -  person Goksean    schedule 09.03.2015
comment
@syonip: И я еще не использую карму. Я пока использую простой простой жасмин.   -  person Goksean    schedule 09.03.2015
comment
Круто. у вас в вопросе был тег кармы :)   -  person syonip    schedule 09.03.2015


Ответы (2)


Проблема заключалась в несовпадении версий между angular.js и angular-mock.js.

Обновлена ​​версия angular-mock.js до 1.3.9 (такая же, как angular.js), и проблема исчезла.

person Goksean    schedule 09.03.2015
comment
angular mocks 1.3.9 не найден, вы уверены, что это работает? - person MaicolBen; 06.01.2016

Я думаю, вам не хватает строки, в которой вы определяете, в каком модуле вы собираетесь запускать свои тесты:

beforeEach(module('AngularModuleName'));
person taxicala    schedule 09.03.2015