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

592
Views
¿Cómo agregar un mensaje personalizado a Jest expect?

Imagen siguiente caso de prueba:

 it('valid emails checks', () => { ['abc@y.com', 'a@b.nz'/*, ...*/].map(mail => { expect(isValid(mail)).toBe(true); }); });

Me gustaría agregar un mensaje generado automáticamente para cada correo electrónico, como el correo Email 'f@f.com' should be valid para que sea fácil encontrar casos de prueba fallidos.

Algo como:

 // .map(email => expect(isValid(email), `Email ${email} should be valid`).toBe(true);

¿Es posible en Jest ?

En Chai fue posible hacerlo con un segundo parámetro como expect(value, 'custom fail message').to.be... y en Jasmine parece que se hizo con la cláusula .because . Pero no puedo encontrar la solución en Jest.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Prueba esta biblioteca que amplía broma: https://github.com/mattphillips/jest-expect-message

 test('returns 2 when adding 1 and 1', () => { expect(1 + 1, 'Woah this should be 2!').toBe(3); });
over 4 years ago · Santiago Trujillo Report

0

No creo que sea posible dar un mensaje así. Pero podrías definir tu propio comparador .

Por ejemplo, podría crear un toBeValid(validator) :

 expect.extend({ toBeValid(received, validator) { if (validator(received)) { return { message: () => `Email ${received} should NOT be valid`, pass: true }; } else { return { message: () => `Email ${received} should be valid`, pass: false }; } } });

Y luego lo usas así:

 expect(mail).toBeValid(isValid);

Nota: toBeValid devuelve un mensaje para ambos casos (éxito y fracaso), porque te permite usar .not . La prueba fallará con el mensaje correspondiente dependiendo de si quieres que pase la validación.

 expect(mail).toBeValid(isValid); // pass === true: Test passes // pass === false: Failure: Email ... should be valid expect(mail).not.toBeValid(isValid); // pass === true: Failure: Email ... should NOT be valid // pass === false: Test passes
over 4 years ago · Santiago Trujillo Report

0

Aunque no es una solución general, para el caso común de querer un mensaje de excepción personalizado para distinguir los elementos en un bucle, puede usar test.each de Jest.

Por ejemplo, su código de muestra:

 it('valid emails checks', () => { ['abc@y.com', 'a@b.nz'/*, ...*/].map(mail => { expect(isValid(mail)).toBe(true); }); });

Podría convertirse en cambio

 test.each( ['abc@y.com', 'a@b.nz'/*, ...*/], 'checks that email %s is valid', mail => { expect(isValid(mail)).toBe(true); } );
over 4 years ago · Santiago Trujillo 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!