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

153
Vistas
Inyección de dependencia en el componente principal y secundario en Angular

Estaba teniendo problemas con una prueba en angular. Lo extraño fue que las pruebas tuvieron éxito con

 ng test

y fracasó con

 ng test --watch=false --browsers=ChromeHeadless --code-coverage

Pero agregar un constructor en el componente secundario resolvió el problema.

Componente principal:

 Component({ templateUrl: './edit-organization.component.html', styleUrls: ['./edit-organization.component.scss'] }) export class EditOrganizationComponent implements OnInit { organization: Organization; errorReason: ErrorReason; organization$: Observable<Organization>; errorCodes: ErrorCode[]; constructor( protected currentUserRoute: ActivatedRoute, protected organizationService: OrganizationService, protected navigationService: NavigationService ) { } ngOnInit(): void { this.organization = this.currentUserRoute.snapshot.data.organization; } updateOrganization(form: NgForm) { ...}

Componente secundario 1 (La prueba solía fallar aquí)

 @Component({ templateUrl: './edit-business-organization-profile.component.html', }) export class EditBusinessOrganizationProfileComponent extends EditOrganizationComponent implements OnInit { organizationServiceTypes: OrganizationServiceType[] = organizationServiceTypes; constructor(readonly currentUserRoute: ActivatedRoute, readonly organizationService: OrganizationService, readonly navigationService: NavigationService) { super(currentUserRoute, organizationService, navigationService); } ngOnInit(): void { super.ngOnInit(); } }

Componente hijo 2 (Las pruebas pasan aquí)

 @Component({ templateUrl: './business-organization-profile.component.html', }) export class BusinessOrganizationProfileComponent extends EditOrganizationComponent implements OnInit { ngOnInit(): void { super.ngOnInit(); } }

Tengo una prueba casi similar para los dos componentes que estaban pasando antes, pero cuando agregué un campo organizationServiceTypes en EditBusinessOrganizationProfileComponent , las pruebas comenzaron a fallar.

Anteriormente no tenía ningún constructor en el componente EditBusinessOrganizationProfileComponent , una vez que agregué el constructor, las pruebas comenzaron a pasar.

¿Alguien puede explicar cómo funciona la inyección de dependencia en este caso, ya que el código funciona perfectamente sin la prueba, es solo la prueba la que se rompe?

about 4 years ago · Juan Pablo Isaza
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