Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

91
Views
Verifique que la función asíncrona arroje un objeto que no sea de error usando broma

Usando el marco de jest , ¿cómo puedo verificar que mi función asíncrona arroje algo más que un Error ?

En mis ejemplos a continuación, el primero funciona como se esperaba, ya que la función que se está probando arroja un Error . El segundo ejemplo, donde la función arroja una string , no funciona, jest no verifica que la función arroja.

 // Works as expected test('verify error thrown', async () => { const expected = new Error('actual-error'); const fn = async () => { throw expected; }; await expect(fn()).rejects.toThrow(expected); }); // Fails with: Received function did not throw test('verify non-error thrown', async () => { const expected = 'non-error'; const fn = async () => { throw expected; }; await expect(fn()).rejects.toThrow(expected); });
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

No creo que necesites 'rechazos' en ninguno de los dos casos. De acuerdo con los documentos , no está claro si el método toThrow espera que los resultados se deriven de Error . Hay una forma de expresión regular que podría validar contra una cadena.

rejects dice que desenvuelve el rechazo para que pueda coincidir, y eso podría darte la cadena de mensaje de error de Error , o una cadena si el resultado fue una cadena.

about 4 years ago · Juan Pablo Isaza Report

0

El punto de Dave era absolutamente correcto; usar rejects.toThrow no era la forma correcta de hacerlo aquí.

En cambio, logré verificar el comportamiento esperado simplemente detectando el error y verificando su valor.

 test('verify non-error thrown', async () => { const expected = 'non-error'; const fn = async () => { throw expected; }; await fn().catch(error => expect(error).toStrictEqual(expected)); expect.assertions(1); });

Tenga en cuenta que expect.assertions(1) es importante aquí. Sin esto, si el código que se está probando se actualizó para no arrojar, la prueba aún pasaría.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!