这是我在升级到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],
...
});