2013-03-27 1 views
21

Когда я запускаю HTML-файл SpecRunner, я получаю эту ошибку.ReferenceError: впрыск не задан

Оглядываясь, это связано с тем, что 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.

+1

Убедитесь, что у вас нет зависимостей от скрипта. –

ответ

25

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

1

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

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

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