在我尝试做的一个单元测试中
beforeEach(function () {
angular.mock.inject(function ($injector) {
$httpBackend = $injector.get('$httpBackend');
mockUserResource = $injector.get('User');
$httpProvider = $injector.get('$httpProvider'); // <-- problem
$httpProvider.interceptors.push('myInterceptor');
});
});
( demo )
为什么不能注入(inject) $httpProvider ?
我这样做的原因是因为我没有加载添加我所有拦截器的文件,因为我想一个一个地测试它们!
最佳答案
提供者只能在配置阶段注入(inject),angular.config
。
根据 this answer ,您可以尝试类似的方法:
beforeEach(module('yourModule', function($httpProvider) {
$httpProvider.interceptors.push('myInterceptor');
}));
beforeEach(function() {
angular.mock.inject(function($injector) {
$httpBackend = $injector.get('$httpBackend');
mockUserResource = $injector.get('User');
});
});
有关依赖注入(inject)如何工作的更多信息,this 是一篇很棒的文章(不是 AngularJS 团队写的)
关于javascript - angularJS:单元测试给出:未知提供者:$httpProviderProvider <- $httpProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19767368/