【发布时间】:2015-04-03 02:28:18
【问题描述】:
我正在尝试为现有的 Angular JS 项目设置单元测试,但标题中不断出现错误:
Unknown provider: $$qProvider <- $$q <- $interval
这是我的单元测试:
describe("屏幕控制器", 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);
});
});
});
我要测试的控制器是这样开始的:
var screenCtrl = tsApp.controller('screenCtrl', function($scope, updateService, $translate, $sce, $interval, $timeout) {
我猜我注入的依赖项有问题。提前致谢。
【问题讨论】:
-
我认为我的问题来自于我不明白
$controller()函数的第二个参数在做什么。
标签: javascript angularjs unit-testing dependency-injection jasmine