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

131
Vistas
¿Puedes escribir pruebas asincrónicas que esperan lanzar?

Estoy escribiendo una prueba asíncrona que espera que la función asíncrona se arroje así:

 it("expects to have failed", async () => { let getBadResults = async () => { await failingAsyncTest() } expect(await getBadResults()).toThrow() })

Pero broma es simplemente fallar en lugar de pasar la prueba:

 FAIL src/failing-test.spec.js ● expects to have failed Failed: I should fail!

Si reescribo la prueba para que se vea así:

 expect(async () => { await failingAsyncTest() }).toThrow()

Recibo este error en lugar de pasar la prueba:

 expect(function).toThrow(undefined) Expected the function to throw an error. But it didn't throw anything.
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puede probar su función asíncrona de esta manera:

 it('should test async errors', async () => { await expect(failingAsyncTest()) .rejects .toThrow('I should fail'); });

La cadena 'Debería fallar' coincidirá con cualquier parte del error arrojado.

over 4 years ago · Santiago Trujillo Denunciar

0

Me gustaría agregar a esto y decir que la función que está probando debe arrojar un objeto Error real throw new Error(...) . Jest no parece reconocer si lanzas una expresión como throw 'An error occurred!' .

over 4 years ago · Santiago Trujillo Denunciar

0

await expect(async () => { await someAsyncFunction(someParams); }).rejects.toThrowError("Some error message");

Debemos envolver el código en una función para detectar el error. Aquí esperamos que el mensaje de error lanzado por someAsyncFunction sea igual a "Algún mensaje de error". También podemos llamar al controlador de excepciones

 await expect(async () => { await someAsyncFunction(someParams); }).rejects.toThrowError(new InvalidArgumentError("Some error message"));

Leer más https://jestjs.io/docs/expect#tothrowerror

over 4 years ago · Santiago Trujillo 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