Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

251
Visualizações
El servicio Angular 5 no pudo pasar las pruebas unitarias con (NullInjectorError: ¡No hay proveedor para HttpClient!)

Sigo recibiendo los siguientes errores cuando ejecuto pruebas unitarias

 Error: StaticInjectorError(DynamicTestModule)[ApiService -> HttpClient]: StaticInjectorError(Platform: core)[ApiService -> HttpClient]: NullInjectorError: No provider for HttpClient!

api.servicio.ts

 import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; @Injectable() export class ApiService { constructor(private http: HttpClient) { } url = './assets/data.json'; get() { return this.http.get(this.url); } }

api.servicio.spec.ts

 import { TestBed, inject } from '@angular/core/testing'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { ApiService } from './api.service'; describe('ApiService', () => { beforeEach(() => { TestBed.configureTestingModule({ imports: [ HttpClientTestingModule, ], providers: [ ApiService, ], }); }); it('should get users', inject([HttpTestingController, ApiService], (httpMock: HttpTestingController, apiService: ApiService) => { expect(apiService).toBeTruthy(); } ) ); });

No entiendo qué está fallando, ya que incluí HttpClient en api.service.ts, el servicio funciona en el navegador.

Esto se llama directamente en un componente llamado MapComponent, y eso se llama dentro de HomeComponent.

 Chrome 63.0.3239 (Mac OS X 10.13.3) HomeComponent expect opened to be false FAILED Error: StaticInjectorError(DynamicTestModule)[ApiService -> HttpClient]: StaticInjectorError(Platform: core)[ApiService -> HttpClient]: NullInjectorError: No provider for HttpClient!
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

El motivo de "NullInjectorError: No provider for HttpClient!" son dependencias no resueltas. En este caso, la falta de un HttpClientModule .

En su archivo .service.spec.ts agregue

 imports: [ HttpClientTestingModule, ],

Puede notar que escribí HttpClientTestingModule en lugar de HttpClientModule . La razón es que no queremos enviar solicitudes http reales, sino usar una API simulada del marco de prueba.

over 4 years ago · Santiago Trujillo Relatório

0

simplemente añádelo así,

 beforeEach(() => { TestBed.configureTestingModule({ imports: [ HttpClientModule, ], }).compileComponents(); });
over 4 years ago · Santiago Trujillo Relatório

0

Intente envolver su inject en un async , como a continuación:

 import { TestBed, async, inject } from '@angular/core/testing'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { ApiService } from './api.service'; describe('ApiService', () => { beforeEach(() => { ... }); it(`should create`, async(inject([HttpTestingController, ApiService], (httpClient: HttpTestingController, apiService: ApiService) => { expect(apiService).toBeTruthy(); }))); });

No olvides importar async desde @angular/core/testing .

He tenido buen éxito con esto. Es lo único diferente de sus pruebas unitarias y las mías donde uso HttpClientTestingModule .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda