Testing unitario: cómo hacer tests con Jest y Pytest

Testing unitario: cómo hacer tests con Jest y Pytest

El testing unitario es una práctica fundamental en el desarrollo de software que permite verificar que las unidades individuales de código funcionan correctamente. A medida que los proyectos crecen, la necesidad de asegurar la calidad del código se vuelve crítica. Herramientas como Jest para JavaScript y Pytest para Python han facilitado esta tarea, permitiendo a los desarrolladores crear, ejecutar y gestionar pruebas de manera eficiente.

En este artículo, exploraremos cómo realizar pruebas unitarias utilizando Jest y Pytest, proporcionando ejemplos prácticos y ejercicios que te ayudarán a afianzar tus conocimientos. Aprender a implementar pruebas puede parecer desalentador al principio, pero con la práctica, se convertirá en una parte natural de tu flujo de trabajo.

Explicación

El testing unitario consiste en probar partes específicas del código, generalmente funciones o métodos, de forma aislada. El objetivo es asegurarse de que cada unidad de código se comporta como se espera. Esto no solo ayuda a detectar errores en las primeras etapas del desarrollo, sino que también facilita el mantenimiento del código a largo plazo.

En el caso de Jest, es un marco de pruebas para JavaScript que permite realizar pruebas de manera sencilla. Proporciona funciones como describe y it para estructurar las pruebas, y expect para realizar afirmaciones sobre el comportamiento del código. Por otro lado, Pytest es una herramienta poderosa para Python que permite escribir pruebas de forma simple y escalable. Con Pytest, puedes crear pruebas utilizando funciones simples o clases, y ofrece una amplia gama de plugins para extender su funcionalidad.

Ambas herramientas son altamente configurables y permiten integrar pruebas en flujos de trabajo de desarrollo continuo, lo que contribuye a mantener la calidad del software a medida que se realizan cambios en el código.

Ejemplos paso a paso

  1. Ejemplo con Jest: Supongamos que tenemos una función que suma dos números.
    1. Crea un archivo llamado sum.js con el siguiente contenido:
    2. function sum(a, b) {
          return a + b;
      }
      module.exports = sum;
    3. Crea un archivo de prueba sum.test.js:
    4. const sum = require('./sum');
      
      test('suma 1 + 2 a 3', () => {
          expect(sum(1, 2)).toBe(3);
      });
    5. Ejecuta las pruebas con el comando jest en la terminal.
  2. Ejemplo con Pytest: Creemos una función que multiplica dos números.
    1. Crea un archivo llamado multiply.py:
    2. def multiply(a, b):
          return a * b
    3. Crea un archivo de prueba test_multiply.py:
    4. from multiply import multiply
      
      def test_multiply():
          assert multiply(2, 3) == 6
    5. Ejecuta las pruebas con el comando pytest en la terminal.
  3. Ejemplo de prueba fallida: Modifiquemos la función de suma para que falle intencionalmente.
    1. Modifica sum.js para que retorne un valor incorrecto:
    2. function sum(a, b) {
          return a + b + 1; // error intencional
      }
      module.exports = sum;
    3. Ejecuta las pruebas nuevamente y observa cómo Jest informa de la falla.

Ejercicios básicos para practicar

  1. Escribe una función que reste dos números y crea pruebas usando Jest.
  2. Desarrolla una función que divida dos números y prueba su comportamiento con Pytest.
  3. Modifica la función de resta para que falle intencionalmente y verifica que la prueba lo detecte.
Ver solución
  • function subtract(a, b) { return a - b; }
  • def divide(a, b): return a / b

Errores frecuentes

  • No ejecutar las pruebas después de cada cambio: Es importante correr las pruebas regularmente para identificar errores a tiempo.
  • Escribir pruebas que no cubren todos los casos: Asegúrate de incluir pruebas para diferentes escenarios, incluyendo casos extremos.

Preguntas frecuentes

¿Qué es Jest?

Jest es un marco de pruebas para JavaScript que permite realizar pruebas unitarias y de integración de manera fácil y rápida.

¿Qué es Pytest?

Pytest es una herramienta para Python que facilita la escritura de pruebas y ofrece una gran flexibilidad y plugins para extender su funcionalidad.

¿Es necesario hacer testing unitario?

Sí, el testing unitario es fundamental para asegurar la calidad del código y detectar errores en etapas tempranas del desarrollo.

¿Quieres practicar programación con el Profesor IA?

Haz preguntas, resuelve ejercicios y aclara tus dudas en tiempo real. Disponible 24/7.

🎓 Practicar con el Profesor IA →

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *