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

156
Visualizações
Broma espiar la funcionalidad

Estoy cambiando a Jest de Mocha, y me pregunto si hay una forma de espiar un método React. Por ejemplo, digamos que tengo el siguiente método en mi componente (ignore la biblioteca sdk , solo construye una llamada jQuery Ajax):

 getData() { sdk.getJSON('/someURL').done(data => { this.setState({data}); }); }

Usando Sinon probaría esto espiando el prototipo así:

 it('should call getData', () => { sinon.spy(Component.prototype, 'getData'); mount(<Component />); expect(Component.prototype.getData.calledOnce).to.be.true; });

Esto aseguraría la cobertura del código sin burlarse del método. ¿Existe una funcionalidad similar en Jest?

EDITAR: Además, si esta funcionalidad no existe, ¿cuál es la siguiente mejor estrategia para probar las llamadas a la API?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

En realidad puedes usar jest.spyOn jest.spyOn

Si se llama al método cuando se crea el componente, use:

 import { mount } from 'enzyme'; describe('My component', () => { it('should call getData', () => { const spy = jest.spyOn(Component.prototype, 'getData'); mount(<Component />); expect(spy).toHaveBeenCalledTimes(1) }); })

o si lo tiene en su DOM y usa el método bind , puede usar:

 import { shallow } from 'enzyme'; describe('My component', () => { it('should call getData', () => { const wrapper = shallow(<Component />); const instance = wrapper.instance() const spy = jest.spyOn(instance, 'getData'); wrapper.find('button').simulate('click') expect(spy).toHaveBeenCalledTimes(1) }); })
over 4 years ago · Santiago Trujillo Relatório

0

Existe el método spyOn , que se introdujo con v19 hace algunos días, que hace exactamente lo que está buscando.

over 4 years ago · Santiago Trujillo Relatório

0

Puede optar por el nuevo método spyOn o el siguiente también debería funcionar bien.

 it('should call getData', () => { Component.prototype.getData = jest.fn(Component.prototype.getData); expect(Component.prototype.getData).toBeCalled(); });
over 4 years ago · Santiago Trujillo 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