Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

926
Vistas
ReferenceError: no se puede acceder al servicio antes de la inicialización

Recibo un error cuando ejecuto una prueba unitaria con jasmine en la aplicación angular8. Tengo un servicio y dentro de este servicio estoy inyectando otro servicio.

 @Injectable({ providedIn: 'root' }) export class FirstService { constructor(private http: HttpClient, private configService: ConfigurationService) { }

cuando hago la prueba de ejecución de npm, siempre recibo un error:

Se produjo un error en afterAll ReferenceError: no se puede acceder a 'ConfigurationService' antes de la inicialización en Module.ConfigurationService ( http://localhost:9876/_karma_webpack_/main.js:1095:112 )

¿Alguna ayuda?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Debería proporcionar una simulación de ConfigService porque es una dependencia de FirstService . La forma más fácil de hacerlo es con un espía.

Algo como:

 let firstService: FirstServicec; let configServiceSpy: jasmine.SpyObj<ConfigService>; beforeEach(() => { const spy = jasmine.createSpyObj('ConfigService', ['getValue']); TestBed.configureTestingModule({ providers: [ FirstService, { provide: ConfigService, useValue: spy } ] }); // Inject both the service-to-test and its (spy) dependency configService = TestBed.get(ConfigService); configServiceSpy = TestBed.get(ValueService); });

Luego, puedes consumir el espía en la prueba como:

 it('#getValue should return stubbed value from a spy', () => { const stubValue = 'stub value'; configServiceSpy.getValue.and.returnValue(stubValue); expect(firstService.getValue()) .toBe(stubValue, 'service returned stub value'); expect(configServiceSpy.getValue.calls.count()) .toBe(1, 'spy method was called once'); expect(configServiceSpy.getValue.calls.mostRecent().returnValue) .toBe(stubValue); });

Para obtener más información, consulte esta sección de Angular Docs

over 4 years ago · Santiago Trujillo Denunciar

0

Este puede ser un mensaje de error muy engañoso.

Una dependencia circular puede estar causándolo, ¡resuelva sus dependencias circulares!

No verá una advertencia de dependencia circular cuando ejecute 'npm run test', pero recibirá una advertencia cuando ejecute 'npm run serve' o 'npm run build'.

over 4 years ago · Santiago Trujillo Denunciar

0

En mi caso, fue un error muy estúpido. Estaba usando servicios abstractos y cosas de useClass y tenía algo como esto en un archivo:

 constructor(@Optional() private readonly baseService: BaseService) { } export abstract class BaseService { public abstract doSomething(): void; }

Cambiando el orden a

 export abstract class BaseService { public abstract doSomething(): void; } constructor(@Optional() private readonly baseService: BaseService) { }

resolvió el problema. DIOS MÍO.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda