Las pruebas unitarias son un tipo de pruebas de software diseñadas para validar el comportamiento de una unidad mínima del código, generalmente una función o método individual.
Estas pruebas se ejecutan en aislamiento, es decir, sin dependencias externas, como bases de datos, archivos, servicios HTTP, etc.
Desde el punto de vista técnico:
Cuando escribimos código, queremos estar seguros de que funciona bien, que da los resultados correctos y que no se rompe cuando cambiamos algo más adelante.
Para eso existen los tests unitarios: son pequeños programas que revisan automáticamente que tu código haga lo que debe hacer.
Imagina esto: Tú haces una calculadora. Quieres asegurarte de que cuando alguien presiona 2 + 3
, la calculadora realmente muestre 5
. Los test unitarios revisan eso por ti, sin necesidad de probarlo manualmente cada vez.
Jest es una herramienta que nos ayuda a escribir y ejecutar esos test unitarios fácilmente.
Es como un asistente que verifica tu código automáticamente cada vez que tú le dices: “revísame si esto sigue funcionando bien”.
Jest es un framework de testing completo para JavaScript y TypeScript, desarrollado por Facebook. Es ampliamente utilizado en proyectos modernos por su:
Característica | Detalle técnico |
---|---|
Aserciones (expect ) | Sistema flexible para validar condiciones de prueba. |
Matchers (toBe , toEqual , etc.) | Operadores para evaluar comparaciones. |
beforeEach / afterEach | Hooks para preparar el entorno de pruebas. |
jest.fn() y jest.mock() | Funciones espía y simulaciones de dependencias. |
test.each() | Pruebas parametrizadas (tablas de datos). |
coverage | Análisis de cobertura del código. |
Tener instalado Node.js en tu computadora.
Crear tu proyecto (con npm init -y
).
Instalar Jest:
package.json
para poder ejecutar Jest fácilmente:
Un test unitario se encarga de probar una función individual, como esta:
sumar(2, 3)
devuelva 5
. Si no devuelve eso, me avisas que algo está mal".Palabra | Significado simple |
---|---|
test() | Es donde defines un test (como "quiero probar esto..."). |
expect() | Es donde dices "espero que el resultado sea...". |
.toBe() | Compara si el valor real es igual al que esperas. |