Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angularJS:单元测试提供:未知提供程序:$httpProviderProvider<;-$httpProvider_Javascript_Unit Testing_Angularjs - Fatal编程技术网

Javascript angularJS:单元测试提供:未知提供程序:$httpProviderProvider<;-$httpProvider

Javascript angularJS:单元测试提供:未知提供程序:$httpProviderProvider<;-$httpProvider,javascript,unit-testing,angularjs,Javascript,Unit Testing,Angularjs,在我的一个单元测试中,我正在尝试 beforeEach(function () { angular.mock.inject(function ($injector) { $httpBackend = $injector.get('$httpBackend'); mockUserResource = $injector.get('User'); $httpProvider = $injector.get('$httpProvider');

在我的一个单元测试中,我正在尝试

beforeEach(function () {
    angular.mock.inject(function ($injector) {
        $httpBackend = $injector.get('$httpBackend');
        mockUserResource = $injector.get('User');
        $httpProvider = $injector.get('$httpProvider');  // <-- problem
        $httpProvider.interceptors.push('myInterceptor');
    });
});
在每个(函数()之前{
angular.mock.inject(函数($injector){
$httpBackend=$injector.get(“$httpBackend”);
mockUserResource=$injector.get('User');

$httpProvider=$injector.get(“$httpProvider”);//名称
Provider
由angular自动添加。因此,您应该只注入
$http

$httpProvider = $injector.get('$http'); 

下面是一个示例。

提供程序只能在配置阶段,
angular.config
中注入

根据,您可以尝试以下方法:

beforeEach(module('yourModule', function($httpProvider) {
  $httpProvider.interceptors.push('myInterceptor');
}));

beforeEach(function() {
  angular.mock.inject(function($injector) {
    $httpBackend = $injector.get('$httpBackend');
    mockUserResource = $injector.get('User');
  });
});

有关依赖项注入工作原理的更多信息,请参阅一篇很棒的文章(不是AngularJS团队编写的)

这是正确的,只是想补充一点,您可能希望在单元测试中避免实际的HTTP请求。我想您忘记了他想使用拦截器配置
$httpProvider
。他不想注入
$HTTP
服务。顶级问题,如此简洁和易于搜索!我遇到了这个确切的问题。