Angularjs $rootScope在使用Karma进行测试时未定义
我正试图为一个角度项目编写一些单元测试。我已经跟随了一些关于测试控制器的例子,但我总是遇到同样的问题:$rootScope似乎没有定义 My test.js:Angularjs $rootScope在使用Karma进行测试时未定义,angularjs,unit-testing,karma-runner,Angularjs,Unit Testing,Karma Runner,我正试图为一个角度项目编写一些单元测试。我已经跟随了一些关于测试控制器的例子,但我总是遇到同样的问题:$rootScope似乎没有定义 My test.js: describe("Unit: BodyCtrl", function() { var scope; beforeEach(function($rootScope, $controller) { scope = $rootScope.$new(); }); it('foo should
describe("Unit: BodyCtrl", function() {
var scope;
beforeEach(function($rootScope, $controller) {
scope = $rootScope.$new();
});
it('foo should be foo', function() {
expect("foo").toBe("foo");
});
})
错误是:
TypeError: Cannot read property '$new' of undefined'
我已经在karma.conf.js中包含了所有角度文件。我通过sshfs将主应用程序从服务器安装到本地Ubuntu 14.04,并且Karma安装在所述本地机器上,这会导致问题吗?您需要注入它。在每个之前的
中使用注入
,否则它只是在函数范围中定义的变量,没有定义任何值
例如:-
beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
ctrl = $controller('yourcontroller', {
$scope: $rootScope.$new()
});
}));