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

56
Vistas
jest.toThrow no puede capturar la excepción?

Tengo una función simple como la siguiente

 function foo({ platform }) { if (platform === 'all') { throw new Error('Platform value can only be android or ios'); } return `${platform}`; }

Luego escribí pruebas unitarias como se muestra a continuación.

 it('should return correct result with platform', () => { expect(foo({ platform: 'ios' })).toBe('ios'); expect(foo({ platform: 'android' })).toBe('android'); expect(foo({platform: 'all'})).toThrow(new Error('Platform value can only be android or ios')); });

La prueba realmente falló debido al último caso de prueba sin ninguna información útil

 FAIL src/utils/__test__/foo.test.ts ● foo() › should return correct result with platform Platform value can only be android or ios 16 | }) { 17 | if (platform === 'all') { > 18 | throw new Error('Platform value can only be android or ios'); | ^ 19 | } 20 | 21 | return `${platform}`; at xx (src/utils/foo.ts:18:11)

También intenté envolver toda la expect con el bloque try catch pero la prueba tampoco está pasando

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

0

toThrow solo funciona cuando a expect se le pasa una función sin argumentos que se puede llamar para causar la excepción.

 /* this is the only test that needs this */ expect(() => foo({platform: 'all'})).toThrow();

Esto se debe a que JavaScript no admite argumentos de función de aplazamiento automático, por lo que no hay forma de expect "pausar" la evaluación de sus argumentos. Entonces, la API tiene que ser "dame (Jest) una función para llamar y la llamaré cuando esté listo para manejar lo que esa función podría hacer".

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