Profundizando en spyOn con funciones en Jest

Autor: | Última modificación: 18 de marzo de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post:

Algunos de nuestros reconocimientos:

Premios KeepCoding

Como desarrolladores web, uno de nuestros trabajos más críticos es garantizar que nuestras aplicaciones funcionan como se espera en todas las condiciones posibles. Aquí es donde entran en juego las pruebas unitarias. La biblioteca de pruebas Jest se ha convertido en una de las herramientas más valiosas en el arsenal de un desarrollador de JavaScript.

Dentro de Jest, spyOn es una función poderosa que nos permite espiar otras funciones y rastrear su uso. Pero ¿por qué es esto importante? Imagina que estás trabajando en una aplicación web compleja que implica muchas funciones interactuando entre sí. Quieres asegurarte de que, cuando se realiza cierta acción en tu aplicación, se llama a una función específica con los argumentos correctos. Aquí es donde spyOn brilla: nos permite espiar esa función, verificar cuándo y cómo se llama y asegurarnos de que todo funciona correctamente.

¿Qué es Jest y por qué deberías usarlo?

Jest es una biblioteca de pruebas de JavaScript creada por Facebook. Se utiliza para realizar test en aplicaciones JavaScript, incluyendo, por supuesto, las aplicaciones de React. Se trata de una herramienta poderosa que debería formar parte del arsenal de cualquier desarrollador web.

Mocks y spies: un dúo dinámico

Dentro de Jest, hay dos conceptos que son esenciales para entender cómo hacer testing efectivo: los mocks y los spies. Un jest mock es una versión simulada de una función que nos permite probar su comportamiento sin tener que invocar la función real. Por otro lado, jest.spyOn nos permite espiar una función, es decir, nos permite rastrear si se llamó, cuántas veces se llamó, con qué argumentos y más.

Sumérgete en Jest spyOn

Aprender a usar spyOn puede suponer un verdadero cambio de juego en tu desarrollo de pruebas. Te permite escribir pruebas más efectivas y robustas, lo que significa que puedes escribir código con mayor confianza.

Considera el ejemplo de trabajar con API externas o funciones que interactúan con la base de datos. No quieres realizar solicitudes reales o manipular la base de datos cada vez que ejecutas tus pruebas. SpyOn puede ayudarte a fingir estas funciones y hacer que devuelvan lo que especifiques, permitiéndote probar el resto de tu código de manera aislada.

Cómo crear un spy en Jest

Crear un espía en Jest es tan simple como llamar a jest.spyOn(). Esta función toma dos argumentos: el objeto que contiene la función que quieres espiar y el nombre de la función.

const object = {
  functionToSpyOn: () => 'Hello, World!'
};

jest.spyOn(object, 'functionToSpyOn');

Una vez hayas creado el espía, puedes realizar un test que compruebe si se ha llamado a la función con los argumentos correctos y cuántas veces se ha llamado, entre otras cosas.

Comprobando las llamadas a una función con SpyOn

Supongamos que quieres verificar que tu función se ha llamado una vez. Veamos cómo sería:

test('functionToSpyOn is called once', () => {
  object.functionToSpyOn();
  expect(object.functionToSpyOn).toHaveBeenCalledTimes(1);
});

En resumen, aprender en qué consiste spyOn y cómo usarlo con funciones en Jest es crucial para cualquier desarrollador web serio. No solo mejorará la robustez de tus pruebas, sino que también te dará mayor confianza en la calidad de tu código. Si quieres ser un gran desarrollador, es indispensable que sepas usar esta herramienta.

¿Quieres aprender más?

Por supuesto, esto es solo la punta del iceberg cuando se trata de testing con Jest y el uso de spyOn con funciones. Hay mucho más que aprender, desde usar spyOn con mockImplementation para cambiar el comportamiento de la función hasta utilizar jest mock function para simular comportamientos más complejos.

¿Sabes cuál es la mejor manera de dominar estas habilidades? Lanzándote de cabeza al desarrollo web y poniéndolas en práctica. Ahí es donde entra en juego nuestro Desarrollo Web Full Stack Bootcamp, la formación íntegra de alta intensidad con la que podrás convertirte en todo un profesional en pocos meses. Gracias a nuestra metodología propia, a nuestros profesores expertos y a nuestro temario totalmente actualizado, te formarás a nivel teórico y práctico y te prepararás para sobresalir en el mercado laboral.

¿Estás listo para cambiar de vida? ¡Pide más información ya mismo y descubre cómo abrirte paso en el demandado mundillo tecnológico con la ayuda de KeepCoding!

Artículos más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

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