gpt4 book ai didi

angular - 如何将 Ngx Progress 与 `HttpClient` 和 `HttpClientModule` 一起使用?

转载 作者:太空狗 更新时间:2023-10-29 19:33:28 25 4
gpt4 key购买 nike

我正在为一个组件使用 NgProgress,它工作正常,在运行单元测试时也是如此。

我确实使用 HttpClientModuleHttpModule 进行了升级,看起来不错。我的问题是,当我运行单元测试时出现以下错误:

[object ErrorEvent] 抛出

错误:StaticInjectorError[NgProgress]:
StaticInjectorError [NgProgress]:
NullInjectorError:没有 NgProgress 的提供者!

错误通常会自行解释,但我就是无法摆脱它并修复它。

是否有任何修复或解决方法?我是否错过了有关 NgProgress 的任何更新或升级?

app.component.ts:

...
import { HttpClient } from '@angular/common/http';
import { NgProgress } from '@ngx-progressbar/core';
...

constructor(..., public progress: NgProgress, ...) {...}

myFunction() {
...
this.progress.complete();
....
}

app.component.spec.ts:

    import { RouterTestingModule } from "@angular/router/testing";
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { HttpClient } from '@angular/common/http';
import { NgProgress } from '@ngx-progressbar/core';
....
describe("myComponent", () => {

let component: myComponent;
let fixture: ComponentFixture<myComponent>;

beforeEach(
async(() => {
TestBed.configureTestingModule({
imports: [
...
RouterTestingModule,
HttpClientTestingModule,
ReactiveFormsModule,
...
],
declarations: [myComponent],
providers: [
{ provide: MatDialogRef, useClass: MatDialogRefMock },
...
],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
}).compileComponents();
})
);

});

最佳答案

问题已修复...解决方案是在 configureTestingModule({...}) 方法中的 Providers 数组中添加以下代码:

...
providers: [
{ provide: MatDialogRef, useClass: MatDialogRefMock },
...
{ provide: NgProgress }
],
....

关于angular - 如何将 Ngx Progress 与 `HttpClient` 和 `HttpClientModule` 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49116902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com