我正在尝试运行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:无法读取未定义的属性'$ modules'
TypeError:无法设置未定义的属性'$ injector'
任何信息都会有所帮助。谢谢!
答案 0 :(得分:2)
问题在于angular.js和angular-mock.js之间的版本不匹配。
将angular-mock.js的版本更新为1.3.9(与angular.js相同)并且问题已经消失。
答案 1 :(得分:0)
我认为您错过了定义要运行测试的模块的行:
beforeEach(module('AngularModuleName'));