¿Cómo testar la clase carrito con TDD?

Contenido del Bootcamp Dirigido por: | Última modificación: 31 de julio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Quieres aprender a testar la clase carrito con TDD? ¿Sabes en qué consiste la metodología TDD? En este artículo, podrás conocer las tres etapas que conforman al Test Driven Development (Red, Green y Refactor) y cómo se ven ejecutadas en un ejercicio real que incluye la respuesta a cómo testar la clase carrito con TDD.

Testar la clase carrito con TDD

En este ejercicio práctico vamos a testar la clase carrito con las prácticas de TDD. Esta clase hace referencia a un carrito de compra, como los que aparecen en muchos marketplaces o sitios web de marcas que venden sus productos.

Como cualquier carrito de compra, se llena a medida que los usuarios van agregando ítems. En esta ocasión, vamos a testar esa funcionalidad con las tres etapas del Test Driven Development: Red, Green y Refactor.

Paso 1: El test que falla

Para empezar, debes saber que la clase carrito ya debería estar escrita, por lo que en los siguientes apartados solo vamos a describir y ejecutar la parte del test de la metodología.

El primer paso del TDD es realizar un test que va a fallar, es decir, vamos a ejecutar la zona roja o RED de la metodología. Entonces, como tenemos la clase en otro lugar, vamos a importarla en nuestro nuevo módulo de Carrito.test.js.

Una vez tengamos la clase en el fichero, es necesario saber qué queremos testar. Puede ser cualquier cosa que te imagines o necesites, según las funcionalidades que ofrece el elemento, como una clase o una función. Para este ejercicio, vamos a definir si el carrito de compras de un sitio puede sumar el total de ítems en el momento de iniciar el carrito.

Así pues, primero vamos a describir nuestro test y a sumarle el método para obtener el total de ítems. Vamos a proponer una hipótesis, donde se instancia un nuevo carrito, y esperamos que, al obtener el total de los ítems, sea igual a 0.

A continuación, puedes ver la representación en forma de código de lo que te acabamos de comentar:

import Carrito from '.Carrito.js'

describe ('Testing Carrito class', () =>  {
             describe ('getTotalItems0, () => {
                        it ('Should return 0 items at initialization', () =>  {
                            const carrito = new Carrito();
                            expect (carrito.getTotalItems()).toEqual (0)
            })
       })
})

Si intentas ejecutar este test, es posible que te encuentres con un error en la terminal o en línea de comandos, como el que visualizas a continuación. Es ahí donde continuamos con la fase de implementación.

¿Cómo testar la clase carrito con TDD?

Paso 2: Fase de implementación

Como hemos visto que el anterior test ha fallado, empezaremos a realizar la fase de implementación, en la que tenemos que escribir el código suficiente para que el test pase sin ningún problema. Para ello, tenemos que crear un nuevo módulo JS y, después, exportar la clase carrito, donde listaremos la función getTotalItem.

Si lo dejamos en esta línea de código, es posible que dé un error de tipo undefined. Por esta razón, debemos pasar la respuesta al pasar el test y ejecutarlo con el return 0. De esta manera, la comprobación pasará sin problemas, como puedes ver en el siguiente extracto:

module.experts = class Carrito {
       getTotalItems() {
             return 0;
         }
}

A continuación, puedes ver el resultado de las comprobaciones una vez se ejecuten y se pinten en la terminal de tu IDE:

¿Cómo testar la clase carrito con TDD?

Paso 3: Refactorizar

El tercer paso es el de refactorizar tu extracto de código. Sin embargo, en este caso, no hay nada que refactorizar o que volver a determinar con otras herramientas de tu framework de testing, como Jest.

Ya que has ejercitado tus habilidades con este ejercicio para aprender a testar la clase carrito con TDD, es el momento de continuar aprendiendo a nivel teórico y práctico sobre otros tipos de test y mucho más. Para seguir expandiendo tus conocimientos en el sector IT, tu mejor opción es el Desarrollo Web Full Stack Bootcamp, la formación de alta intensidad con la que lograrás convertirte en todo un profesional en pocos meses. ¡Entra para pedir información y atrévete a 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