¿Qué son los mocks para TDD con JavaScript?

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

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes qué son los mocks para TDD con JavaScript? ¿Sabes lo útiles que pueden ser en el desarrollo de tus proyectos? En este artículo encontrarás las respuestas, ya que vamos a explicar conceptos relacionados con el TDD o Test-Driven Development, donde se incluyen los mocks para TDD con JavaScript.

¿Qué es el TDD?

El TDD o el Test-Driven Development es una práctica que algunos desarrolladores han implementado para realizar comprobaciones de sus programas y hacer que funcionen correctamente.

Según la teoría que define qué es el TDD, este consiste en aplicar iteraciones rápidas del ciclo Red Green Refactor. Esto significa, primero, crear un test que representa una especificación que puede funcionar o no funcionar; después, crear una solución en forma de código que ayude a que el test pase sin ningún problema, y por último, tendrás que optimizar el test para que se mantenga la funcionalidad del mismo, es decir, lo refactorizamos.

A estos tres pasos se les llama: Red, Green y Refactor, respectivamente. A su vez, te permiten mejorar muchas funcionalidades de tu código y de tus test, como minimizar los bugs o producir programas reutilizables, entre otras.

Mocks para TDD con JavaScript

En programación, un mock es el código que sustituye o imita otra porción de código. El mock siempre está vacío, pero imita el comportamiento de objetos reales en una forma controlada. De este modo, los mocks se utilizan para probar otros objetos a partir de los test unitarios, los cuales esperan ciertas respuestas de alguna librería, base de datos o clase. Hay que tener en cuenta que estas respuestas no son necesarias para la ejecución de nuestra prueba.

Algunos ejemplos de mocks que podemos encontrar en nuestra vida diaria son:

  • Devolver registros de una DB (database).
  • Insertar los elementos a una DB (database).
  • Realizar llamadas a API de terceros que se consumen por llamada.
  • Imitar los registros de actividad en un log.

Ahora bien, cada framework de test implementa los mocks de una forma específica. Por ejemplo, en Jest podemos crear mocks de cualquier cosa y hay una librería que almacena todas las formas en las que se puede realizar esto. Otra de las cosas interesantes de esta herramienta es que podemos crear un mock de una clase, una dependencia externa que puede encontrarse en el node_modules, entre otros.

Por otro lado, para crear mocks de una clase en JavaScript tendrías que llamar al método mock de Jest. Sin embargo, si usamos Mocha no tenemos una forma directa para crear los mocks, sino que deberíamos apoyarnos en librerías externas, como Sinon.js.

Entre tanto, los mocks te permiten realizar métricas, lo que es muy útil al evaluar o hacer test de performance. Gracias a su potencial, podrías tener las siguientes métricas, con lo que además podremos modificar el comportamiento a partir de los mocks para TDD con JavaScript:

  • Las veces que se llaman a una función.
  • Los parámetros con los que se llama a dicha función.
  • El output o valor de salida que haya generado la llamada al mock.

Para realizar mocks con Jest usaremos los siguientes parámetros:

  • Mock para cargar nuestros propios mocks.
  • .fn para generar funciones mock desde 0.
  • .spyOn para generar funciones de mock de una función que ya existe.

Ya que conoces lo más importantes de los mocks para TDD con JavaScript, es la hora de seguir aprendiendo sobre ellos y de ponerte manos a la obra con tus programas de código.

¿Qué sigue ahora?

Ahora que sabes qué son los mocks para TDD con JavaScript, ya puedes implementarlos en un proyecto real y ver cuánto te pueden ayudar a cumplir tus objetivos para testar y desarrollar programas. Si sientes que aún te queda mucho por repasar para cumplir con esta especie de tareas, te invitamos a unirte a nuestro Desarrollo Web Full Stack Bootcamp, donde nos enfocamos en contarte todo lo que necesitas saber a nivel teórico y práctico sobre el desarrollo web para convertirte en un experto en la materia en menos de un año. ¡Entra ya y solicita información!

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

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