Подтвердить что ты не робот

ReferenceError: инъекция не определена

Когда я запускаю HTML файл SpecRunner, я получаю эту ошибку.

Оглядываясь, это связано с тем, что angular-mocks.js не ссылается. В моем случае он ссылается.

SpecRunner.html:

  <link rel="stylesheet" type="text/css" href="lib/jasmine-1.3.1/jasmine.css">
  <script type="text/javascript" src="lib/jasmine-1.3.1/jasmine.js"></script>
  <script type="text/javascript" src="lib/jasmine-1.3.1/jasmine-html.js"></script>
  <script type="text/javascript" src="lib/angular-mocks.js"></script>

  <!-- include source files here... -->
  <script type="text/javascript" src="../main/static/js/controllers/norm-definitions-controller.js"></script>

Когда тесты выполняются, я получаю это исключение: ReferenceError: inject is not defined

Я вижу, что angular-mocks.js ссылается, и это не проблема кэширования, поскольку я вижу это с помощью Firebug.

Глядя в angular-mocks.js, я вижу полную ссылку angular.mock.inject = function() { ... }, я тоже пробовал это как ссылку и получаю исключение ReferenceError: angular is not defined.

4b9b3361

Ответ 1

Вам все еще нужно angular.js lib. Я не видел его среди ваших скриптов. Он должен быть до angular-mock.js.

Ответ 2

Для ошибок, возникающих при добавлении кармы и жасмина к тестированию вашего проекта, убедитесь, что

  • ваши файлы angular.js и angular -mocks js имеют одинаковые версии.
  • версия jasmine совместима с версией angularjs, обратитесь к официальному сайту jasmine, чтобы убедиться, что нет синтаксической ошибки.
  • относятся к формированию теста на официальном сайте angular js, чтобы следовать методологиям модульного тестирования.

Вышеупомянутые шаги помогают избежать большинства распространенных ошибок.