0Pricing
Lua Academy · Lección

Por qué hacer pruebas

Detecte errores antes que los usuarios

Por qué hacer pruebas es una lección gratuita de Lua Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Lua Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Lua Academy incluye 4 lecciones en total.

Por qué probar

Las pruebas automatizadas son código que comprueba su código. En lugar de ejecutar manualmente un programa y revisar la salida por encima, escriba pequeñas aserciones que el ejecutor de pruebas verifica por usted.

Para Lua, el framework más popular es busted. Ofrece una sintaxis clara para describir el comportamiento y mostrar los resultados como correctos o fallidos.

El coste de no tener pruebas

Sin pruebas, cada cambio es una apuesta. Corrige un error y rompe otro sin darse cuenta. A medida que crece una base de código, resulta imposible realizar una comprobación manual exhaustiva.

Las pruebas actúan como una red de seguridad. Al refactorizar, una suite de pruebas correcta le indica que se conserva el comportamiento.

Primer archivo de pruebas

Un archivo de pruebas de busted suele encontrarse en una carpeta spec/ y terminar en _spec.lua. Dentro, describa aquello que está probando.

Este es el ejemplo útil más pequeño. Comprueba que la aritmética básica funciona.

describe("math", function()
  it("adds numbers", function()
    assert.are.equal(4, 2 + 2)
  end)
end)

Ejecución de busted

Instale busted con LuaRocks: luarocks install busted. Después, ejecute el comando busted en la raíz del proyecto.

Detecta los archivos que terminan en _spec.lua, ejecuta cada bloque it e imprime un punto por cada prueba correcta y una F por cada fallo.

Pruebas de su propio módulo

Las pruebas reales importan el módulo que se está probando mediante require. Llame a sus funciones y compruebe el resultado con aserciones.

Suponga que tiene un módulo calculator.lua que devuelve una tabla de funciones.

local calc = require("calculator")

describe("calculator", function()
  it("multiplies", function()
    assert.are.equal(6, calc.mul(2, 3))
  end)
end)

Las pruebas como documentación

Las pruebas bien escritas también sirven como documentación viva. Una persona desarrolladora nueva puede leer el archivo de especificación y entender exactamente cómo debe comportarse una función.

Como las descripciones son cadenas sencillas, se leen casi como oraciones: "calculator multiplica".

describe("string utils", function()
  it("trims whitespace", function()
    assert.are.equal("hi", utils.trim("  hi  "))
  end)
end)

Ciclos rápidos de feedback

El verdadero poder de las pruebas es la velocidad. Ejecutar una suite completa tarda segundos, mucho menos que recorrer manualmente una aplicación haciendo clic.

Incluso puede ejecutar busted en modo de supervisión o centrarse en un solo archivo para mantener un feedback rápido mientras desarrolla.

-- run only one file
-- busted spec/calculator_spec.lua

Detección de regresiones

Una regresión es un error que reaparece en código que antes funcionaba. Cuando encuentre un error, la práctica recomendada es escribir primero una prueba que lo reproduzca.

Cuando la prueba falle, corrija el código hasta que pase. A partir de ese momento, la prueba protege frente a la reaparición del error.

it("handles empty input", function()
  assert.are.equal(0, calc.sum({}))
end)

Qué hace que una prueba sea buena

Las buenas pruebas son rápidas, aisladas y deterministas. No deben depender de la red, del tiempo ni de valores aleatorios, a menos que estos estén controlados.

Cada prueba debe comprobar un comportamiento claro. Si una prueba falla, su nombre debe indicar qué se ha roto sin necesidad de leer su contenido.

Pirámide de pruebas

La pirámide de pruebas propone muchas pruebas unitarias pequeñas, menos pruebas de integración y muy pocas pruebas de extremo a extremo. Las pruebas unitarias son económicas y rápidas, así que dé prioridad a estas.

busted es principalmente una herramienta de pruebas unitarias, aunque también puede utilizarla para pruebas de integración.

Confianza para hacer cambios

El beneficio más profundo de las pruebas es la confianza. Con una suite fiable, puede refactorizar de forma ambiciosa, actualizar dependencias y entregar cambios más rápidamente.

Este curso enseña busted desde cero: estructura, aserciones y dobles de prueba como mocks y spies.

describe("feature", function()
  it("still works after refactor", function()
    assert.is_true(feature.enabled())
  end)
end)

Comprobación rápida

Compruebe si entiende por qué escribimos pruebas.

Resumen

Las pruebas son código que verifica código. busted es el framework principal de Lua: detecta archivos _spec.lua e informa de si las pruebas son correctas o fallan.

Las buenas pruebas son rápidas, aisladas y deterministas. Detectan regresiones, sirven como documentación y le dan confianza para cambiar el código libremente.

Preguntas frecuentes

¿La lección «Por qué hacer pruebas» es gratis?

Sí — el texto completo de «Por qué hacer pruebas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Lua Academy, actualiza a CoddyKit PRO. El curso de Lua Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Por qué hacer pruebas»?

Detecte errores antes que los usuarios Practicas Lua Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Lua Academy?

No se requiere experiencia previa. Lua Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Por qué hacer pruebas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Lua Academy?

Sí. Cada lección de Lua Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Por qué hacer pruebas
  2. Bloques describe e it
  3. Aserciones
  4. Mocks y spies
← Volver a Lua Academy