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

506
Vistas
Fallo de Jasmine: Error: <spyOn>: no se pudo encontrar un objeto para espiar para postSkillforMember()

Estoy tratando de probar un método que no devuelve nada. El método llama a un servicio para realizar un HTTP POST. Me burlé de mi servicio y lo configuré como un parámetro dentro de SpyOn. El segundo parámetro en la llamada de SpyOn es el nombre del método que contiene la operación de publicación. En este caso, el nombre del método es postSkillforMember. Cuando ejecuto la prueba ng, las fallas de la lista de especificaciones de Jasmine arrojan el siguiente error:

Lista de especificaciones de jazmín | Fallas:

 AddSkillModalComponent > Testing addSkill() success Error: <spyOn> : could not find an object to spy upon for postSkillforMember()

¿Que estoy haciendo mal? Este es el método en mi componente.ts que quiero probar:

Método para probar:

 addSkill(): void { this.successCallback=(skill: any) => { this.showAlert = false; this.activeModal.close(skill); }; this.errorCallback=(error: any)=>{ this.showAlert=true; }; const skillFormBody = { skill: { "id": this.itemFormGroup.get("skill")?.value.id, "skill": "" }, skillLevel: { "id": this.itemFormGroup.get("skillLevel")?.value.id, "skillLevel": "" } } this._skillAddService.postSkillforMember( this.memberId, skillFormBody, this.successCallback, this.errorCallback );}

Mis especificaciones se burlan del servicio dentro de la descripción:

describir en add-skill-modal.component.ts:

 describe('AddSkillModalComponent', () => { let component: AddSkillModalComponent; let fixture: ComponentFixture<AddSkillModalComponent>; let mockSkillAddService: jasmine.SpyObj<SkillAddService>;}

Y, finalmente, esta es la prueba unitaria que escribí para mi método:

en add-skill-modal.component.ts:

 it('Testing addSkill() success', () => { spyOn(mockSkillAddService, 'postSkillforMember'); component.addSkill(); expect(component.showAlert).toBeFalsy(); });

Realmente aprecio tu ayuda. Gracias de antemano.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¿Puedes mostrar tu TestBed.configureTestingModule({ ?

Asegúrese de crear un spyObj para SkillAddService y agréguelo a los proveedores.

 beforeEach(waitForAsync(() => { // make sure you create this spy object with postSkillforMember public method to be mocked mockSkillAddService = jasmine.createSpyObj<SkillAddService>('SkillAddService', ['postSkillforMember']); TestBed.configureTestingModule({ declarations: [...], // provide the mock instead of the real one providers: [{ provide: SkillAddService, useValue: mockSkillAddService }], }).compileComponents(); })); it('Testing addSkill() success', () => { // no need to spy anymore // spyOn(mockSkillAddService, 'postSkillforMember'); component.addSkill(); expect(component.showAlert).toBeFalsy(); // can do: expect(mockSkillAddService.postSkillforMember).toHaveBeenCalled(); });
about 4 years ago · Juan Pablo Isaza 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