gpt4 book ai didi

javascript - Angular 单元测试 : Unknown provider: $$qProvider <- $$q <- $interval

转载 作者:行者123 更新时间:2023-11-29 19:30:10 25 4
gpt4 key购买 nike

我正在尝试为现有的 Angular JS 项目设置单元测试,但我一直在标题中收到错误消息:

Unknown provider: $$qProvider <- $$q <- $interval

这是我的单元测试:

describe("屏幕 Controller ", function(){

beforeEach(module('tsApp'));

var scope, createController, $interval, $timeout, $translate, $sce, $controller;

beforeEach(inject(function(_$controller_, $rootScope, _$interval_, _$timeout_, _$translate_, _$sce_ ){

// The injector unwraps the underscores (_) from around the parameter names when matching
$interval = _$interval_;
$timeout = _$timeout_;
$translate = _$translate_;
$sce = _$sce_;
$controller = _$controller_;
scope = $rootScope.$new();

createController = function() {
return $controller('screenCtrl', {
'$scope' : scope,
'$interval' : $interval,
'$timeout' : $timeout,
'$translate' : $translate,
'$sce' : $sce
});
};
}));

describe('first test', function() {
it('it runs without error!', function() {
var controller = createController();
expect(true).toEqual(true);
});
});

});

我要测试的 Controller 是这样启动的:

var screenCtrl = tsApp.controller('screenCtrl', function($scope, updateService, $translate, $sce, $interval, $timeout) {

我猜我注入(inject)的依赖项有问题。提前致谢。

最佳答案

$$qProvider 是在 AngularJS 1.3.0-beta.14 中引入的。它没有记录并在内部使用。

在此版本之前,$IntervalProvider 使用 $q,在 beta.14 及更高版本中,它同时使用 $q$ $q.

AngularJS 模块版本冲突的地方。

检查您的所有文件或例如您的 Bower 组件。

确保您的核心 AngularJS 版本对于您可能使用的其他模块来说足够高。例如,Angular Material 需要 Angular 1.3.x。

关于javascript - Angular 单元测试 : Unknown provider: $$qProvider <- $$q <- $interval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28306606/

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