Test adicionales para la clase promises.js [Testar promesas]

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

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabías que hay test adicionales para la clase promises.js? Si observas la documentación de Jest, verás que hay más de un método para realizar comprobaciones sobre las promesas, muy necesarias para el desarrollo de sitios web.

Si quieres aprender sobre los diferentes métodos para testar estas promesas, no puedes perderte este post, donde vamos a realizar los test adicionales para la clase promises.js con los métodos promise, resolver y rechazar, así como async & await.

Test adicionales para la clase promises.js

En este post acerca de los test adicionales para la clase promises.js, vas a aprender a lanzar una petición, a capturarla y a testar de diferentes formas y con diferentes funciones. De esta manera, este ejercicio práctico funciona como un punto de partida para aprender a comprobar las funciones, de forma panorámica, en un programa de código de desarrollo web.

Realizar la promesa

Antes de conocer los test adicionales para la clase promises.js, es importante entender cómo realizar una promesa y de qué forma queremos obtener los resultados, ya sea una petición exitosa o insatisfactoria. Para realizar la promesa, puedes seguir este extracto de código:

import axios from 'axios'

const BASE_URL = "URL-del-API'

const sucessfulRequest = () => {
     return axios.get (' ${BASE_URL} /status/200')
}
const failedRequest = () => {
     return axios.get (' ${BASE_URL}/status/403')

module.exports = {
          successfulRequest,
          failedRequest,
}

Test adicionales de promises.test.js

Según la documentación de Jest, hay varios métodos para realizar los test o comprobaciones sobre las promesas. Algunos de estos son: el método o estilo de promesas, el método de resolver y rechazar y el async & await.

El siguiente tipo de comprobación de promesas que puedes hacer es en el que le devuelves alguna promesa a Jest. Para ello, vamos a describir nuestro test; luego utilizamos el succesfulRequest y determinamos que esperamos que el response status sea 200. Esto dentro del callback donde ejecutamos la evaluación.

Cuando estamos trabajando con el código asíncrono de Jest, esperamos que haya una assertions, es decir, que se ejecute al menos una vez. A continuación, puedes visualizar el extracto de código con el método promise:

describe ('promise style', () => {
      it ('should have status 200 the request succesfulRequest', () => {
      expect.assertions (1)
      return succesfulRequest().then (response => {
            expect (response.status).toEqual(200)
     })

Por otro lado, otro de los métodos que puedes utilizar es el de resolver y rechazar o reject y resolves. En este, Jest captura la resolución o rechazo de la promesa. Para ello, empezamos a describir cada uno de los test. Aquí también puedes plantear la assertions y, después, tenemos que devolver la promesa con el elemento failedRequest, que será rechazado y va a lanzar un error.

A continuación, puedes visualizar cómo se ve el uso del estilo de reject y resolve:

describe ('.reject/.resolves style', () => {
       it ('should fail the request failedRequest', () => {
            expect.assertions (1)
            return expect (failedRequest{}).rejects.toThrow(/request failed/i
    })

El último método sobre el que hablaremos hoy es el de async & await, funciones que se utilizan solo en el momento en el que queremos obtener una promesa y que sucede cuando está activada. A continuación, realizamos un post en el que esperamos obtener un status 200 con el request de succesfulRequest. Aquí también podemos añadir el método de expect.assertions y, después, empezar a ejecutar la función para capturar la promesa.

A continuación, puedes visualizar un ejemplo, en forma de código, de lo que significa emplear el async & await style para realizar y testar promesas:

describe ('async & await style', () => {
     it ('should have status 200 the request succesfulRequest', async {} => {
         expect.assertions (1)
          try {
                const response = await succesfulRequest();
                expecto (response.status).toBeGreaterThanOrEqual (200)
                } catch (e) {
              }
   })

Al ejecutar test adicionales para la clase promises.js en este ejercicio práctico, has aprendido cuáles son los métodos para testar promesas. Ahora, es el momento de comprobar cada una de las promesas que desarrolles a lo largo de programa de código para el desarrollo web. No hay mejor opción para dar el gran paso al sector IT que nuestra formación intensiva en Bootcamp Desarrollo Web. En cuestión de meses, la metodología teórica y práctica te permitirá convertirte en todo un profesional. ¡Anímate a seguir aprendiendo y entra ya para solicitar información!

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