ReferenceError:未定义注入

时间:2013-03-27 23:54:20

标签: javascript angularjs mocking jasmine

当我运行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

2 个答案:

答案 0 :(得分:25)

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

答案 1 :(得分:1)

对于在测试项目时添加业力和茉莉花时出现的错误,请确保

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

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

相关问题