[英]Trying to Mock a Service in angular for test cases, but still getting "No Provider for HTTPClient"
我正在嘗試在我的主組件中為 Angular 中的項目運行測試用例。 該組件使用 ApiCallService,我正在嘗試模擬它以進行測試。 但是,我不斷收到相同的錯誤。 “創建”測試用例運行,但用於查看頁面上是否寫入“測試”的測試用例給出了“沒有 HTTPClient 提供程序”錯誤。 HttpClient 和 HttpClientModule 也被導入到 app.module.ts 中。
import { HttpClient, HttpClientModule } from '@angular/common/http';
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
import { HomeComponent } from './home.component';
import { ApiCallService } from 'src/app/core/service/api-call.service';
describe('HomeComponent', () => {
let component: HomeComponent;
let fixture: ComponentFixture<HomeComponent>;
let service: ApiCallService;
let httpMock: HttpTestingController;
let httpClient: HttpClient;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule],
providers: [ApiCallService, HomeComponent]
});
service = TestBed.inject(ApiCallService);
httpMock = TestBed.get(HttpTestingController);
httpClient = TestBed.inject(HttpClient);
});
it('should create', () => {
expect(ApiCallService).toBeTruthy();
});
});
it('TEST123', () => {
const fixture = TestBed.createComponent(HomeComponent);
fixture.detectChanges();
const compiled = fixture.nativeElement as HTMLElement;
expect(compiled.querySelector('p')?.textContent).toContain('Test');
});
如果您正在對 HomeComponent 進行單元測試,那您就做錯了。 你應該做的是:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.