gpt4 book ai didi

angularjs - 使用 Karma 测试时 $rootScope 未定义

转载 作者:行者123 更新时间:2023-12-02 20:17:53 25 4
gpt4 key购买 nike

我正在尝试为一个 Angular 项目编写一些单元测试。我遵循了一些关于测试 Controller 的示例,但我总是遇到同样的问题:$rootScope 似乎未定义。

我的test.js:

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'

我已将所有 Angular 文件包含在 karma.conf.js 中。我通过 sshfs 将主应用程序从服务器安装到本地 Ubuntu 14.04 并且 Karma 安装在所述本地计算机上,这是否会导致问题?

最佳答案

你需要注入(inject)它。在 beforeEach 中使用 inject,否则它只是在函数作用域中定义的变量,未定义任何值。

示例:-

beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
ctrl = $controller('yourcontroller', {
$scope: $rootScope.$new()
});
}));

关于angularjs - 使用 Karma 测试时 $rootScope 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25311911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com