Chuck's Academy

TypeScript Básico

Testing en TypeScript

Realizar pruebas es una parte esencial del desarrollo de software, y TypeScript proporciona varias herramientas y bibliotecas para realizar pruebas de manera eficiente. En este capítulo, aprenderemos cómo configurar un entorno de pruebas para TypeScript y cómo escribir pruebas unitarias y de integración para asegurarnos de que nuestro código funcione correctamente.

Configuración de Entorno para Pruebas

El primer paso para escribir pruebas en TypeScript es configurar un entorno adecuado. Existen varias bibliotecas de pruebas que son compatibles con TypeScript, como Jest y Mocha. En este capítulo, utilizaremos Jest como ejemplo, ya que es una de las bibliotecas más populares.

Instalación de Jest con TypeScript

Esta imagen muestra un logo de Typescript más jestEsta imagen muestra un logo de Typescript más jest

Para comenzar, necesitamos instalar Jest y las herramientas necesarias para integrarlo con TypeScript.

bash
"Este comando instala Jest, las definiciones de tipos para Jest, y ts-jest, que permite que Jest ejecute pruebas en TypeScript."

Después de instalar las dependencias, debemos crear un archivo de configuración para Jest:

bash
"Este comando genera un archivo de configuración para Jest con soporte para TypeScript."

Configuración de jest.config.js

El archivo jest.config.js permite personalizar el comportamiento de Jest. Aquí hay un ejemplo de configuración básica:

javascript
"Esta configuración indica que usaremos ts-jest como preset, que las pruebas se ejecutarán en un entorno de Node.js, y que los archivos de prueba deben tener la extensión .test.ts."

Escribiendo Pruebas Unitarias

Las pruebas unitarias verifican el comportamiento de unidades individuales de código, como funciones o clases. Veamos cómo escribir una prueba unitaria básica utilizando Jest y TypeScript.

Ejemplo de Prueba Unitaria

Supongamos que tenemos la siguiente función en un archivo math.ts:

typescript
"Aquí tenemos una función llamada add que suma dos números."

Ahora escribiremos una prueba para esta función en un archivo math.test.ts:

typescript
"Esta prueba verifica que la función add suma correctamente dos números. Utiliza el método expect para comparar el valor de retorno con el valor esperado."

Ejecutando las Pruebas

Para ejecutar las pruebas, simplemente ejecuta el siguiente comando:

bash
"Este comando ejecuta todas las pruebas en el proyecto y muestra los resultados en la consola."

Pruebas Asíncronas

En TypeScript, también podemos escribir pruebas para funciones asíncronas utilizando async y await. Veamos un ejemplo de una prueba para una función asíncrona que hace una solicitud a una API.

Ejemplo de Prueba Asíncrona

Supongamos que tenemos la siguiente función en un archivo api.ts:

typescript
"Esta función simula la obtención de datos de una API."

La prueba para esta función sería la siguiente:

typescript
"Esta prueba verifica que la función fetchData retorna los datos correctamente utilizando async y await."

Mocking en TypeScript

El mocking es una técnica utilizada para simular dependencias externas en pruebas, lo que permite aislar la unidad que se está probando. Jest proporciona herramientas para hacer mocking de funciones y módulos.

Ejemplo de Mocking

Supongamos que tenemos una función que depende de una llamada a una API externa:

typescript
"Esta función obtiene datos del usuario haciendo una solicitud a la API."

Podemos simular la respuesta de la API utilizando mocks en nuestras pruebas:

typescript
"En esta prueba, utilizamos jest.fn para crear un mock de la función get, que simula la respuesta de la API. Esto nos permite probar la función getUserData sin hacer una solicitud real a la API."

Cobertura de Código

La cobertura de código mide qué porcentaje de nuestro código está siendo cubierto por pruebas. Jest incluye una herramienta integrada para generar informes de cobertura de código.

Para generar un informe de cobertura, ejecuta el siguiente comando:

bash
"Este comando ejecuta las pruebas y genera un informe de cobertura, que muestra qué partes del código fueron cubiertas por las pruebas."

Conclusión

En este capítulo, hemos aprendido cómo configurar un entorno de pruebas en TypeScript utilizando Jest, cómo escribir pruebas unitarias y asíncronas, y cómo utilizar mocks para simular dependencias externas. También vimos cómo medir la cobertura de código para asegurarnos de que nuestro proyecto esté bien probado.


Pregúntame lo que sea