Test GET de clase users.js [Test de integración]

| Última modificación: 31 de julio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Si quieres aprender en qué consisten los test de integración, este test GET de clase users.js te interesará. Con este ejercicio práctico, podrás perfeccionar tus conocimientos y el uso de herramientas como SuperTest, para lograr las comprobaciones necesarias de tu código. Por tanto, si quieres estar seguro de lo que has programado, sigue leyendo este artículo.

¿Qué encontrarás en este post?

Test de integración

Los test de integración son comprobaciones que realizan test para más de un componente. Para hacerlos, podemos emplear el IDE que prefiramos y descargar las dependencias necesarias. Para hacer un test de integración primero debemos lanzar el server, por lo que necesitamos dos terminales: una que funcione para el server y otra para la database o base de datos.

Para su instalación, utilizamos el comando cd server npm 1. Y para levantar servicios utilizamos:

#para la DB
cd server 
npm run db:up

#para el server
cd server
npm run start:dev

Por otro lado, para la realización de los test de integración, también necesitamos otra herramienta, que se llama Supertest. Se integrará con el siguiente comando:

npm install supertest --save-dev

Test GET de clase users.js

Antes de empezar a testar los controladores de la clase user.js, vamos a empezar a preparar nuestro módulo del testeo, que tendrá el objetivo de comprobar los endpoints de los users. Para hacerlo, también tendremos que tener el módulo de la app añadido, como puedes ver en la siguiente imagen:

Test GET de clase users.js [Test de integración]

En el módulo del test, encontrarás los elementos que solicita la herramienta de SuperTest, así como los que importan la aplicación que te acabamos de mostrar. De esta forma, podrás empezar a realizar el test de integración, que sirve para comprobar los endpoints de los users que obtendremos de la database o de la aplicación.

La función que realizarán las peticiones para obtener la lista de usuarios ya está definida y debe escribirse de la siguiente forma:

Test GET de clase users.js

Para empezar, debemos agrupar el test con el GET de clase users.js. Después, comprobaremos que nos devuelve 2 usuarios. Definiremos una respuesta para pedirle la lista de los usuarios a la aplicación y, luego, esperamos que el status code sea de 200 y que el cuerpo de la respuesta tenga la propiedad de users, además de que la longitud de los usuarios sea de 2.

const request = require supertest();
const app = requiere ('../../app.js')

describe ('Testing users endpoints', () => {
      describe ('GET /users', () => {
               it ('should return 2 users', async ) =>  {
                    const response = await request (app).get ('/users')

                    expect (response.statusCode).toBe (200)
                    expect (response.body).toHaveProperty ('users')
                    expect (response.body.users).toHaveLength (2)
             })

Por otro lado, podemos seguir realizando otros test de integración adicionales para asegurarnos de que no hay ningún problema con la función. Por ejemplo, en la siguiente comprobación estamos testando una función diferente, pero que está bajo el paradigma de GET y de la lista de usuarios. En este caso, hay una comprobación relacionada directamente con el ID.

     describe ('GET /users', () => {
               it ('should return a user', async ) =>  {
                    const response = await request (app).get ('/users/2')

                    expect (response.body).toHaveProperty ('user')

               it ('should return a user = {id: 1} for id 1', async ) =>  {
                    const response = await request (app).get ('/users/1')

                    expect (response.body.users).toHaveLength (2)
             })

Finalmente, para correr el test tendríamos que emplear el comando de npx jest intergration para ejecutar todos los test, cuyo pass tiene el path de integration. A su vez, algo interesante de emplear la herramienta de SuperTest es que, mientras nosotros nos quedamos con la aplicación, la herramienta la levanta y nos permite escuchar o evaluar los test, es decir, tenemos toda la autonomía.

De esta forma, has aprendido cómo funcionar el test GET de clase users.js, como un test de integración realizado con SuperTest.

Has terminado de leer este artículo acerca del test GET de clase users.js, así que estás un paso más cerca de convertirte en todo un experto en los test de integración. Aun así, queda mucho por aprender, por lo que es el momento de seguir practicando. Para aprender de forma teórica y práctica, no puedes perderte el Desarrollo Web Full Stack Bootcamp, la formación de alta intensidad que te permitirá impulsar tu carrera en muy pocos meses. ¡Entra ahora para pedir información y no te pierdas esta oportunidad para cambiar tu futuro!

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