Test adicionales para la clase user.js [Usando Mocks de Jest]

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 test adicionales para la clase user.js? Con la utilización de la herramienta de mocks de Jest, estos te permiten conocer una forma diferente para realizar comprobaciones sobre las peticiones que un desarrollador hace en su proyecto.

Sigue leyendo este artículo, ya que con este ejercicio práctico de los test adicionales para la clase user.js, vas a descubrir todas las oportunidades que te ofrecen los mocks de Jest.

Mocks de Jest

Los mocks de Jest son una herramienta bastante amplia que te ayuda a favorecer la utilidad y el proceso de testeo de forma efectiva y breve. La herramienta de Jest realiza un mock y construye un sitio o manual que te permite, por un lado, emplear datos falsos para el desarrollo de tus funciones y, por otro, enlazar endpoints o bases de datos en las clases y funciones de un programa de desarrollo web.

En términos generales, podemos crear un mock de una clase o una dependencia externa que se encuentre en los módulos de nodo, entre otros. Esto es lo que vamos a ver en este ejercicio de test adicionales para la clase user.js, de forma que falsearemos el módulo.

Test adicionales para la clase user.js

import axios from axios

const ENDPOINT = 'Link del endpoint';

class Users {
      static all() {
             return axios.get ('${ENDPOINT} /users').then (response => response.data)
     }
}
module.exports = Users

En primer lugar, para realizar el test adicional, vamos a nombrarlo Mocking y vamos a decirle que podría devolver un array de user (un user sería un objeto con diferentes variables, como el id, el nombre y el username). La raíz de usuarios que nos devolverá debe contenerlos.

Para poder hacer esto, tenemos que importar el módulo en el que vamos a realizar el mock. Es decir, vamos a importar axios y, después, vamos a utilizar el método para mockear todo el módulo, que es:

jest.mock ('axios');

Después, vamos a empezar a definir nuestro resultado, que será un array de usuarios con las variables correspondientes. Además, también tenemos que configurar el dataset que va a devolver: users. Por último, le diremos que se resolverá el mock del dataset con el método get.mockResolvedValue.

De este modo, podemos plantear dos aserciones. En el primer caso, le pedimos un usuario a la lista y tendrá que ser un array. En el segundo, si le pedimos el primer user de la lista, tendrá que ser el mismo que aparece en el id número 1.

A continuación ,visualizarás el extracto de código que ejemplifica todo lo que te hemos contado:

describe ('Mocking', () => {
    it ('should return an array of users, being a user an object with props: id, name, username', async () => {
        const users = [{id:1, name: 'foo', username: ' '}]
        const dataSet = {data: users}
        axios.get.mockResolvedValue (dataset)

        expect.assertions (2)
        try {
              const userList = await Users.all()
              expect (userList).toBeArray() // primera aserción
              expect (userList [0]).toMatchObject{id: 1, name: 'fo', username: ' ' // segunda aserción
            } catch (e)  {
    }

De esta manera, hemos realizado un mock a nivel global para que funcione. A partir de esto, podemos seguir trabajando para perfeccionar nuestro programa de código.

Conviértete en un experto

Si has llegado hasta aquí, has aprendido cómo se crean los test adicionales para la clase user.js al emplear la herramienta de mocks de Jest, que te permite falsear los datos que necesites. De esta forma, vamos a descubrir una forma diferente, pero efectiva, para realizar las comprobaciones.

Si te queda alguna duda respecto a los mocks en Jest o cualquier otra forma de comprobación, no hay nada mejor para expandir tus conocimientos que el Desarrollo Web Full Stack Bootcamp. Esta formación íntegra e intensiva, además del acompañamiento de expertos en el sector, te permitirá entrar y crecer en el mercado laboral IT en menos de un año. ¡Solicita información y únete ahora para impulsar tu carrera!

Posts Relacionados

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

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