22

当我运行 SpecRunner HTML 文件时,我得到了这个错误。

环顾四周,这是由于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

4

2 回答 2

25

你仍然需要angular.jslib。我没有在你的脚本中看到它。应该是之前angular-mock.js

于 2013-03-28T00:20:11.133 回答
1

对于添加 karma 和 jasmine 来测试您的项目时出现的错误,请确保

  • 你的 angular.js 和 angular-mocks js 文件都有相同的版本。
  • jasmine 版本兼容 angularjs 版本,参考 jasmine 官网确保没有语法错误。
  • 请参阅 Angular js 官方网站上的测试形式以遵循单元测试方法。

上述步骤有助于避免大多数常见错误。

于 2015-03-15T11:56:17.243 回答