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

305
Visualizações
Errores de broma inesperados al burlarse de Uppy

Estoy intentando simular la clase Uppy del paquete uppy en una prueba de unidad Jest siguiendo la guía de esta pregunta respondida anteriormente . Mi código fallido está a continuación:

 import Uppy from '@uppy/core'; describe('MyComponent', () => { it('renders', () => { jest.mock('@uppy/core', () => { return { Uppy: jest.fn().mockImplementation(() => { return {}; }), }; }); new Uppy(); expect(Uppy).toHaveBeenCalledTimes(1); }); });

La prueba falla con el siguiente mensaje de error:

 Matcher error: received value must be a mock or spy function Received has type: function Received has value: [Function Uppy]

Parece que la exportación predeterminada de @uppy/core es la clase Uppy , por lo que mi expectativa es que el código proporcionado se burlará del constructor de la clase, sin embargo, este no parece ser el caso.

Versiones del paquete:

  • Uppy: 2.1.2
  • broma: 27.4.7
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que el problema es que estás usando jest.mock() en el momento equivocado. En otras palabras, creo que es demasiado tarde para llamar a jest.mock() dentro de un caso de prueba porque el paquete ya se ha importado en ese momento.

No estoy seguro de cuál es la forma canónica de hacer esto, pero así es como lo hace React:

  • tiene un archivo separado donde se jest.mock()
  • la ruta de ese archivo desde arriba es el valor de la opción globalSetup de Jest; como puede ver, esta opción está en el archivo config.base.js :
 module.exports = { globalSetup: require.resolve('./setupGlobal.js'), }
  • cuando se ejecuta el script de prueba, elegirá la configuración en función de los argumentos proporcionados

  • un ejemplo de dicha configuración sería este archivo que, como puede ver, extiende config.base , que es donde se ha configurado la opción globalSetup

 /* ... */ const baseConfig = require('./config.base'); module.exports = Object.assign({}, baseConfig, { /* ... */ }); /* ... */

Entonces, diría que hacer uso de esa opción globalSetup debería resolver el problema.

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