¿Por qué hacer testing?
Las pruebas automáticas comprueban que tu código hace lo que debe. Te dan confianza para cambiar el código sin miedo a romper algo (las pruebas avisan).
Una aserción básica
Una aserción comprueba que una condición se cumple; si no, falla.
function assert(condicion, mensaje) {
if (!condicion) throw new Error(mensaje || "Falló la aserción");
}
function doble(x) {
return x * 2;
}
assert(doble(4) === 8, "doble(4) debería ser 8");
assert(doble(0) === 0, "doble(0) debería ser 0");
console.log("✅ Todas las pruebas pasaron");
Frameworks de testing
En proyectos reales se usan herramientas como Jest o Vitest, con una sintaxis declarativa:
test("doble multiplica por dos", () => {
expect(doble(4)).toBe(8);
});
TDD: Test-Driven Development
El desarrollo guiado por pruebas invierte el orden habitual. El ciclo es rojo → verde → refactor:
- Rojo: escribe una prueba que falla (la función aún no existe).
- Verde: escribe el código mínimo para que pase.
- Refactor: mejora el código manteniendo las pruebas en verde.
TDD te obliga a pensar primero qué debe hacer el código antes de cómo.
Ejemplos
Mini-suite de pruebas casera
function assert(cond, msg) {
if (!cond) throw new Error(msg);
}
function esPar(n) {
return n % 2 === 0;
}
assert(esPar(4) === true, "4 es par");
assert(esPar(7) === false, "7 es impar");
console.log("Todas las pruebas pasaron");