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

161
Vistas
Angular unit test cases for subscribe and hostlistners

I have started writing unit test cases for my new angular project. Can anyone please help me to write test cases for service & Hostlisteners. I have written but both specs are failing.

1st spec error: Exected spy on subscribe to equal spy on userData.

2nd spec error: Cannot read properties of undefined(reading 'triggerEventHandler')

mycomponent.ts

                     export class myComponent imlements OnInt{
                        constructor(){
                           this.user();
                        }
                        user(){
                              setTimeOut(()=>{
                                 if(this.router.url != '/contact' && this.router.url !== '/about'){
                                    thhis.usersubscription = this.service.userData().subscribe((data)=>{
                                        if(data){
                                           this.router.navigate(['/welcomepage'])
                                        }
                                     })
                                 }
                              },300)
                        }

                        @HostListner('document:keydown',['$event'])
                        @HostListner('window:touchmove',['$event'])
                        getUser(){
                           this.user();
                        }
                     }

myComponent.spec.ts

                     let mock = {
                        name: 'abc',
                        id: 1234
                     };
                     let inputElement:DebugElement;
                     let fixture;
                     describe('myComponent',()=>{
                        beforeEach(waitForAsync(()=>{
                             TestBed.configureTestingModule({
                                  declaration:[myComponent],
                                  providers: [Service]
                              }).compileComponents());
                        }));

                        beforeEach(()=>{
                               fixture= Test.createComponent(myComponent);
                         })

                         it('should subscribe userdata',fakeAsync(()=>{
                              let service = TestBed.get(Service);
                              let userSpy = spyOn(service,'userData').and.returnValue(of(mock));
                              let subspy = spyOn(service.userData(), 'subscribe');
                              tick();
                              expect(subspy).toEqual(userSpy);
                         }))

                          it('call user method when keydown',()=>{
                             const component = fixture.componentInstance;
                              fixture.detectChange();
                              inputElement.triggerEventHandler('keydown',null);
                              expect(component.user()).toHaveBeenCalled();
                          })
                     })
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