Realiza pruebas unitarias a tu API Express Js con Jest

¿Cómo realizar pruebas unitarias a su API Express Js con Jest?

Hola 👋🏼, esta es la tercera parte de mi tutorial de pruebas unitarias. En esta ocasión, aprenderemos a probar una API Express Js. El objetivo aquí es probar la solicitud y las respuestas de nuestra API y asegúrese de que funcione sin problemas. Nuestro entorno de trabajo es Express Js, Axios, Express Validator y Jest para pruebas unitarias.
¡Empecemos!

Configure su servidor Express Js.

  • Comenzaremos creando una carpeta vacía e inicializando nuestro proyecto allí.
Git Bash
mkdir express-tutorial cd express-tutorial npm init -y
  • Una vez inicializado el proyecto, instale el Express Js y el Validador Express.
Git Bash
npm i express express-validator

Vaya a la raíz del proyecto, cree una carpeta routes y dentro crea routes.js; este archivo contendrá todas nuestras rutas. Aprenda más sobre el express.Router()

Git Bash
mkdir routes cd routes touch routes.js
  • Abra este archivo en su editor favorito y copie el siguiente código.
routes/routes.js
  • Finalmente, cree index.js en la raíz del proyecto y copie el siguiente código.
index.js

Realiza tu primera prueba de API.

Preparémonos para ejecutar nuestra primera prueba; instala Jest, Axios y el Nodemon; Todo en modo desarrollo. Pronto, Node podrá observar los cambios en los archivos, por lo que en el futuro no necesitarás instalar Nodemon.

Git Bash
npm i -D jest nodemon axios

Agregue los scripts a package.json, para que no tenga que escribir los comandos constantemente. Si quieres que la prueba reinicie en cada cambio de archivo, agregue --watchAll a Jest.

package.json
  • Cree una carpeta __test__ en la raíz del proyecto, y dentro crea index.test.js.
Git Bash
mkdir __test__ cd __test__ touch index.test.js
__test__/index.test.js

Inicie su servidor con npm run dev, luego en otro terminal, ejecuta la prueba con npm test; asegúrese de que el código de estado (status code) devuelto por el servidor sea 200 y que en la data esté "Hello World!"

Pruebe una ruta de inicio de sesión.

Construyamos una ruta de inicio de sesión simple para probar una solicitud HTTP POST. Primero, agregue el siguiente código a routes.js

routes/routes.js
  • Vaya a index.test.js y pruebe su ruta de inicio de sesión.
__test__/index.test.js

¿Cómo probar el Express Validator?

En la última parte de este tutorial, usaremos el Express Validator para probar la ruta de inicio de sesión. Primero, vaya a routes.js y modifique la ruta de inicio de sesión. Si la validación falla, devuelve el código de error 400.

routes/routes.js

Vaya a index.test.js y pruebe el Express Validator. Al probar las API, no olvide verificar códigos y mensajes de error. ¡Hasta la próxima!

__test__/index.test.js