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

594
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 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