es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Haz que %o funcione en console.assert en Jest.

Estoy utilizando jest (junto con babel/webpacker) para probar mi código, pero cuando uso afirmaciones (console.assert) en jest, no obtengo el resultado esperado.

Si ejecuto el siguiente código en la consola de node, obtengo un mensaje como sigue:

art = {}
console.assert(false, "art not in user_articles art: %o", foo)
Assertion failed: art not in user_articles art: {}

Pero cuando obtengo un fallo de afirmación en una prueba jest, obtengo un resultado como el siguiente:

console.assert(user_articles.includes(art), "art not in user_articles art: %o", art)
AssertionError [ERR_ASSERTION]: art not in user_articles art: %o

Ten en cuenta que, a diferencia de cuando ejecuto la afirmación en la consola, %o no se reemplaza con el valor del siguiente parámetro. ¿Qué debo hacer para hacer que console.assert reemplace %o con el parámetro deseado cuando lo ejecuto bajo jest?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para hacer que console.assert reemplace %o con el parámetro deseado al ejecutarlo en jest, debes pasar como segundo parámetro a la función expect() proporcionada por la biblioteca de afirmaciones de jest. Aquí tienes un ejemplo:

    expect(user_articles.includes(art)).toBe(true, "art not in user_articles art: %o", art);
    

    Esto producirá un mensaje de fallo de afirmación en el siguiente formato:

    expect(received).toBe(expected, "art not in user_articles art: %o", art);
    

    Donde %o se reemplazará con el valor de art.

Comments are closed.