angularjs - Jasmine /Angular : TypeError: Cannot read property '$modules/$injector' of undefined

标签 angularjs jasmine karma-jasmine jasmine-jquery angular-mock

我正在尝试运行 Jasmine 测试用例,但我登陆的是未定义的“$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');
    }));
});


我收到以下错误,
类型错误:无法读取未定义的属性“$modules”
类型错误:无法设置未定义的属性“$injector”

任何信息都会有所帮助。谢谢!

最佳答案

问题出在 Angular.js 和 Angular-Mock.js 之间的版本不匹配。

将 angular-mock.js 版本更新至 1.3.9(与 angular.js 相同),问题消失。

关于angularjs - Jasmine /Angular : TypeError: Cannot read property '$modules/$injector' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28946910/

相关文章:

angular - 找不到模块 '@angular/cdk/testing'

javascript - 调用函数的点击事件

node.js - 如何使用 karma 将 Jasmine 测试结果/输出报告到文本文件中

javascript - 可以看到 javascript 文件中的函数,但看不到变量

javascript - AngularJS - 获取 ng-repeated DOM 元素的数据模型

javascript - Jasmine Node 说 "0 tests"当有*有*测试

angularjs - 通过右键菜单在 Web Storm 中运行单个 Karma Jasmine 测试

javascript - ng-class 仅适用于 ng-repeat 的前 5 个之后的每个元素

javascript - 如何允许用户将 Angular 范围变量插入文本框

javascript - Angular JS/UI-路由器 : disable directives for a given state?