Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

601
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda