En pocas palabras, prueba unitaria (unit test) comprueba si funciona correctamente un pequeño trozo de código, más a menudo — una función o método separado. La palabra unit se traduce como «unidad», y en las pruebas, esta unidad es la parte más pequeña del programa que se puede probar de forma aislada.
Por ejemplo, si tienes la función calculateSum(a, b), la prueba unitaria verificará que devuelva el resultado correcto con diferentes datos de entrada.

¿Por qué son importantes las pruebas unitarias?
Detección temprana de errores.
Un error detectado en la fase de prueba es más barato que un error en la producción.
Confianza en los cambios.
Añade una nueva característica o refactoriza el código: las pruebas mostrarán si algo se ha roto.
Documentación a través de ejemplos.
Las buenas pruebas explican por sí mismas cómo funciona el código.
Automatización.
Las pruebas se pueden ejecutar automáticamente en cada confirmación a través de CI/CD.
¿Cómo se ve una prueba unitaria en la práctica?
Ejemplo en Python:
def multiply(a, b):
return a * b
Ahora crearemos una prueba usando la biblioteca unittest:
import unittest
class TestMultiply(unittest.TestCase):
def test_positive_numbers(self):
self.assertEqual(multiply(2, 3), 6)
def test_with_zero(self):
self.assertEqual(multiply(0, 10), 0)
if __name__ == '__main__':
unittest.main()
Cuando ejecutes las pruebas, Python verificará que multiply(2, 3) realmente devuelve 6 y multiply(0, 10) — 0. Si todo es correcto, la prueba tendrá éxito, de lo contrario, sabrás inmediatamente dónde está el error.

Buenas prácticas para escribir pruebas unitarias
Prueba una cosa a la vez: cada prueba comprueba un comportamiento específico.
Aísle las pruebas: no deben depender unas de otras.
Escriba de forma legible: nombres comprensibles como
test_returns_zero_when_input_is_empty().No pruebes lo obvio: si una función simplemente llama a una biblioteca sin lógica, no se necesita una prueba.
Pruebas unitarias en proyectos reales
En muchos equipos, las pruebas son una parte obligatoria del proceso de desarrollo. Por ejemplo:
En GitHub Actions o GitLab CI las pruebas se ejecutan automáticamente antes de la implementación.
En proyectos de código abierto sin pruebas, el código a menudo no se acepta en el repositorio.
En productos como Codik Las pruebas ayudan a garantizar que las nuevas lecciones y las API no rompan la funcionalidad anterior.
Las pruebas unitarias no son solo un «trabajo adicional», sino inversión en estabilidad. Con su ayuda, el desarrollador puede mejorar el código con confianza, sin temor a estropear algo accidentalmente. Sin pruebas, el código se convierte rápidamente en un «campo minado», donde cualquier cambio puede romperlo todo.
Por cierto, si aún no estás familiarizado con Código es nuestro curioso robot que enseña programación con palabras sencillas y sin aburrir.
Explica temas complejos como las pruebas, Python o JavaScript de una manera que incluso un principiante lo entiende y le resulta interesante.
Y en nuestro Canal de Telegram compartimos nuevos artículos, minicursos, información de TI y analizamos ejemplos reales de código.
Echa un vistazo: el ambiente es agradable y hay mucho que aprender.
