因果报应测试中的未知提供者
Unknown provider in Karma test
我有以下提供者:
(function (angular) {
angular.module('app')
.provider('$_Config', ConfigProvider);
function ConfigProvider() {
.... //routes definition
}
ConfigProvider.prototype.$get = function () {
return this;
};
ConfigProvider.prototype.getRoutes = function() {...}
//other prototype functions
})(angular);
在app.js中,我是这样使用它的:
app.config(function ($routeProvider, $_ConfigProvider) {
var routes = $_ConfigProvider.getRoutes();
routes.forEach(function(route) {
$routeProvider
.when(route.route, {
.....
})
}
在测试之前,每件事都很好。这是我的测试:
describe('Provider: $_ConfigProvider', function () {
// load the providers module
beforeEach(module('app'));
// instantiate provider
var $_ConfigProvider;
beforeEach(inject(function (_$_Config_) {
$_ConfigProvider = _$_Config_;
}));
it('Should verify getRoutes function', function () {
var routes = $_ConfigProvider.getRoutes();
expect(Object.prototype.toString.call(routes) === '[object Array]').toBe(true);
});
});
当运行测试时,我得到以下错误:
Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:unpr] Unknown provider: $_ConfigProvider
注意:$_ConfigProvider
在运行时正确注入。
您可能没有在karma.conf.js依赖项列表中包含定义提供程序的文件。请参阅此问题:
在Angular应用程序的Karma测试文件中包含依赖项?
我会将$_Config重命名为其他名称,"$"通常是为特定角度的组件保留的。
相关文章:
- 对广告服务器的未知信标调用
- Axios spread()具有未知数量的回调参数
- 反汇编的javascript jit代码调用未知函数
- 未知”<#"构造
- Safari 5.1.7下载文件名未知的csv文件
- 带有 JavaScript 随机数函数的未知问题
- 哪个原型用于创建具有未知标记的节点
- xmlHttp.responseText未知错误定义
- JavaScript删除未知侦听器
- 因果报应测试中的未知提供者
- 有角度的“;未知提供者”;在约曼应用程序中使用Grunt Build缩小后出错
- 错误:$injector:unp未知提供者:未知提供者:bProvider<-b
- Angular uibModal,Resolve,未知提供者
- Angularjs - 未知的提供者:
- 当添加一个服务和一个过滤器或多个服务时,我在做什么导致未知提供者
- 永远运行sail.js+angularjs项目得到未知提供者:a
- 又一个'未知提供者'用于AngularJS服务
- AngularJS未知提供者
- 尽管其他控制器和服务工作,未知的提供者错误
- 因果报应错误:未知提供者