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

511
Visualizações
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 Respostas
Responde à pergunta

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 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