2

我正在尝试运行 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');
    }));
});


我收到以下错误,
TypeError: Cannot read property '$modules' of undefined
TypeError: Cannot set property '$injector' of undefined

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

4

2 回答 2

2

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

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

于 2015-03-09T17:31:29.937 回答
0

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

beforeEach(module('AngularModuleName'));
于 2015-03-09T16:25:03.163 回答