NullInjectorError: StaticInjectorError(DynamicTestModule)[Ht



这是我在升级到angular 12后测试时得到的错误。

NullInjectorError: StaticInjectorError(DynamicTestModule)[HttpClient ->HttpHandler]:StaticInjectorError(Platform: core)[HttpClient ->HttpHandler]:NullInjectorError:没有HttpHandler的提供者!

i tried addHttpClientModuleTestBed.configureTestingModule

甚至我的项目也有服务器端渲染。

请帮助我,我已经尝试了所有可用的解决方案,但仍然得到相同的错误

检查app.module.ts中是否有HttpClientModule:

import { HttpClientModule } from '@angular/common/http';

和this:

@NgModule({
imports: [
HttpClientModule
]
})

确保在app.module.ts文件中BrowserModule之后导入HttpClientModule,如下所示,如果尚未按此顺序导入。

import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [
BrowserModule,
HttpClientModule,
],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }

另外,假设在运行测试时可能会出现此错误。然后,您应该将HttpClientModule添加到TestBed.configureTestingModule的imports数组中,如下所示:

TestBed.configureTestingModule({
imports: [HttpClientModule],
...
});

或者更好(如果你想模拟请求):

TestBed.configureTestingModule({
imports: [HttpClientTestingModule],
...
});

相关内容

最新更新