【问题标题】:Jasmine/Angular: TypeError: Cannot read property '$modules/$injector' of undefinedJasmine/Angular:TypeError:无法读取未定义的属性“$modules/$injector”
【发布时间】:2015-03-10 01:31:29
【问题描述】:

我正在尝试运行 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>

下面是我的规范代码sn-p,

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”
TypeError:无法设置未定义的属性“$injector”

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

【问题讨论】:

  • 嗨。您能否提供更多代码,以查看框架内容的加载是否正确?使用
  • @syonip 您好,感谢您的回复。我想通了这个问题。这是角度和角度模拟之间的版本不匹配。更新了 angular-mocks 版本,错误消失了。
  • @syonip:而且,我还没有真正使用业力。我现在只使用简单的茉莉花。
  • 酷。你在问题中有一个业力标签:)

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


【解决方案1】:

问题在于 angular.js 和 angular-mock.js 之间的版本不匹配。

将 angular-mock.js 的版本更新到 1.3.9(与 angular.js 相同)并且问题消失了。

【讨论】:

  • angular mocks 1.3.9 not found,你确定这行得通吗?
【解决方案2】:

我认为您缺少定义要在哪个模块上运行测试的行:

beforeEach(module('AngularModuleName'));

【讨论】:

    猜你喜欢
    • 2020-06-24
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 2018-04-23
    • 2020-01-18
    • 2021-02-27
    • 1970-01-01
    相关资源
    最近更新 更多