我正在尝试编写一个茉莉花测试,但测试没有注入模块中声明的任何依赖项' myApp'。例如:对于依赖(常量)值appConfig,它会抛出错误:
Error: [$injector:unpr] Unknown provider: appConfigProvider <- appConfig
代码段:
describe("UI grid custom directive test", function() {
var $rootScope, $compile;
beforeEach(module('myApp'));
beforeEach(inject(function(_$rootScope_, _$compile_, TestUtils, appConfig) {
$rootScope = _$rootScope_;
console.log(appConfig);
TestUtils.test();
$compile = _$compile_;
var elm = angular.element(
'<custom-ui-grid></custom-ui-grid>'
);
$compile(elm)($rootScope);
$rootScope.$digest();
}));
在app-init.js中引导应用程序
var app = angular.module("myApp", [
'ngRoute',
'ngCookies'
...
]);
...
app.value('appConfig', {
appRootPath: appRootPath
});
..
Karma.unit.config.js
files: [
....
//App-specific Code
'./main/webapp/app/app-init.js',
'./main/webapp/app/config.js',
.....
答案 0 :(得分:0)
修正了!!
在指令的减速之一中,正在创建模块而不是重复使用/导入。
function () {
'use strict';
var myApp = angular.module('myApp', []);//notice the '[]'
...
因为我再次创建模块,app-init.js中的所有声明,配置都被删除了。将其更正为
function () {
'use strict';
var myApp = angular.module('myApp');
...
并且效果很好。