Angularjs 单元测试Karma-未知提供程序
我正在用Karma jasmine为基于Angularjs的项目编写单元测试。我正在我的应用程序中使用 我正在尝试对一个依赖于x-editable库的控制器进行单元测试。 但我面临以下错误:Angularjs 单元测试Karma-未知提供程序,angularjs,karma-runner,karma-jasmine,x-editable,Angularjs,Karma Runner,Karma Jasmine,X Editable,我正在用Karma jasmine为基于Angularjs的项目编写单元测试。我正在我的应用程序中使用 我正在尝试对一个依赖于x-editable库的控制器进行单元测试。 但我面临以下错误: Error: [$injector:unpr] Unknown provider: editableThemesProvider <- edit ableThemes 在等级库文件下面: beforeEach(inject(function(_$controller_, $rootScope, $l
Error: [$injector:unpr] Unknown provider: editableThemesProvider <- edit ableThemes
在等级库文件下面:
beforeEach(inject(function(_$controller_, $rootScope, $localStorage, _editableThemes_, _editableOptions_) {
localStorage = $localStorage;
$controller = _$controller_;
editThemes = _editableThemes_;
editOptions = _editableOptions_;
scope = $rootScope.$new();
leaderboardCtrl = $controller('LeaderboardCtrl', {
$scope: scope,
$modal : modal,
$q: q,
editableOptions: editOptions,
editableThemes: editThemes,
$localStorage: localStorage,
LeaderBoardService : leaderboardService
});
}));
这是我的控制器文件:
(function() {
'use strict';
angular
.module('app')
.controller('LeaderboardCtrl', leaderboardCtrl);
leaderboardCtrl.$inject = ['$scope', '$q', '$modal', '$localStorage', 'editableOptions', 'editableThemes', 'LeaderBoardService'];
function leaderboardCtrl ( $scope, $q, $modal, $localStorage, editableOptions, editableThemes, LeaderBoardService) {
var event_ID = $localStorage.currentEventId;
editableThemes.bs3.inputClass = 'input-sm';
editableThemes.bs3.buttonsClass = 'btn-sm';
editableOptions.theme = 'bs3';
我做错了什么?我遗漏了什么吗?你能显示一下
排行榜Ctrl
的模块定义吗?@Puigcerber check!我更新了问题您是否将'xeditable'
添加到'app'
模块的依赖项中?是的,它是自动注入的,因为我在我的应用程序中使用oc.lazyload,该应用程序工作正常,但单元测试失败。
(function() {
'use strict';
angular
.module('app')
.controller('LeaderboardCtrl', leaderboardCtrl);
leaderboardCtrl.$inject = ['$scope', '$q', '$modal', '$localStorage', 'editableOptions', 'editableThemes', 'LeaderBoardService'];
function leaderboardCtrl ( $scope, $q, $modal, $localStorage, editableOptions, editableThemes, LeaderBoardService) {
var event_ID = $localStorage.currentEventId;
editableThemes.bs3.inputClass = 'input-sm';
editableThemes.bs3.buttonsClass = 'btn-sm';
editableOptions.theme = 'bs3';