Función y utilidad de expect en Jest

Contenido del Bootcamp Dirigido por: | Última modificación: 18 de marzo de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Vamos a hablar sobre la función expect en Jest, un elemento crítico en el mundo de las pruebas de JavaScript. Si ya estás familiarizado con Jest, sabrás que una de sus características más poderosas es la función expect. Pero ¿qué hace realmente expect y cómo puedes utilizarlo en tus propios test?

Jest es una biblioteca de pruebas con una amplia gama de capacidades para hacer pruebas más sencillas y eficientes. Dentro de Jest, una de las funciones más potentes y versátiles es expect. Esta función es el corazón de casi todos los test de Jest, por lo que entenderla es vital para escribir pruebas efectivas.

¿Qué es expect en Jest?

Expect es una función que toma un valor, que podríamos llamar valor actual, y luego encadena uno o más matchers, que verifican ese valor contra el resultado esperado.

expect(valorActual).toBe(resultadoEsperado);

Por ejemplo, imagina que tienes una función suma(arg1, arg2). Puedes usar expect en Jest para comprobar que esta función está funcionando correctamente. Solo hay que escribir una prueba como esta:

test('suma 1 + 2 para dar 3', () => {
  expect(suma(1, 2)).toBe(3);
});

En este caso, suma(1, 2) es nuestro valor actual y 3 es el resultado esperado. La función toBe() es el matcher que comprueba que el valor actual es exactamente igual al resultado esperado.

Imagina por un momento que estás trabajando en un nuevo proyecto. Has codificado una serie de funciones y quieres asegurarte de que funcionan exactamente, como se supone que deben hacerlo. Aquí es donde expect entra en juego. Expect te permite definir afirmaciones o expectativas que describen cómo se supone que tu código debe comportarse. Si tus expectativas coinciden con los resultados reales, tu código pasa la prueba. Si no, es hora de volver al tablero de dibujo y averiguar qué ha salido mal.

¿Por qué es útil expect en Jest?

Lo maravilloso de expect en Jest es que te proporciona una forma fácil y flexible de comprobar tus resultados. ¿Quieres asegurarte de que tu función devuelva un valor específico? Usa toBe(). ¿Esperas que una función mock se llame con argumentos específicos? toHaveBeenCalledWith(arg1, arg2) es tu amigo. Y así en muchos otros casos.

En resumen, expect en Jest te da el control para definir precisamente qué es lo que esperas de tu código. Además, cuando lo combinas con los poderosos matchers de Jest, puedes escribir pruebas verdaderamente expresivas y robustas.

Ejemplos con expect en Jest

Vamos a ver algunos ejemplos de cómo puedes usar expect en tus pruebas Jest.

Comprobar valores

Por ejemplo, digamos que tienes una función doble(numero). Puedes comprobar que está funcionando correctamente con una prueba como esta:

test('doble de 4 es 8', () => {
  expect(doble(4)).toBe(8);
});

Comprobar llamadas a funciones mock

Supón que tienes una función mock y quieres comprobar que se ha llamado con argumentos específicos. Puedes hacerlo de esta manera:

let mockFunction = jest.fn();
// ... luego en tu test:
test('la función mock se llama con 1 y 2', () => {
  mockFunction(1, 2);
  expect(mockFunction).toHaveBeenCalledWith(1, 2);
});

Así, expect en Jest puede convertirse en una de tus herramientas más valiosas para la escritura de pruebas.

Ten en cuenta que no usar Expect en Jest dejaría las pruebas sin ningún valor real, ya que no estarían verificando nada en particular. El desarrollo de software depende en gran medida de la capacidad de verificar que el código está haciendo lo que se supone que debe hacer, y expect es una herramienta esencial para hacer precisamente eso en las pruebas Jest.

¿Por qué aprender expect en Jest?

El aprendizaje de expect en Jest es una habilidad invaluable para cualquier desarrollador de JavaScript. Es una herramienta poderosa que te permitirá escribir código más sólido y fiable. Y lo mejor de todo es que es increíblemente fácil empezar a usarla.

Si te ha gustado este tutorial y quieres seguir aprendiendo, te encantará saber que en KeepCoding ofrecemos el Desarrollo Web Full Stack Bootcamp, donde profundizamos en temas como este y mucho más. El sector tecnológico, que demanda cada vez más profesionales cualificados, es tu oportunidad de transformar tu vida. No esperes más, ¡apúntate a nuestro bootcamp y da el salto a una carrera llena de oportunidades!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado