Testing
Testing
Python
https://docs.python.org/3/library/unittest.html
Unittest : generalidades
Características principales:
▪ Los casos de prueba se definen en clases que
heredan de unittest.TestCase
▪ Cada método de prueba debe comenzar con test_
para que se ejecute
▪ setUp() y tearDown() permiten ejecutar código
antes y después de cada método de prueba
▪ Se utilizan métodos assertX() para verificar
resultados esperados
▪ Para ejecutar las pruebas se llama a unittest.main()
Unittest : ejemplo
▪ Las afirmaciones (asserts) son
una forma de validar que ciertas
condiciones se cumplen en el
código. Sirven para detectar bugs
y fallas lo antes posible.
▪ Se utilizan dentro de funciones y
métodos para verificar los
valores de entrada, salida o el
estado del programa.
Unittest : ejemplo (asserts)
La sintaxis básica es: Ejemplo:
https://ellibrodepython.com/assert-python
Unittest : ejemplo (asserts)
Para los unittest existen
asserts especializados:
▪ assertEqual(a, b): Verifica que
a == b. Útil para confirmar que
una función retorna el
resultado esperado.
▪ assertNotEqual(a, b): Opuesto
a assertEqual, verifica que a !=
b. Sirve para confirmar que
dos valores son distintos
Unittest : ejemplo (asserts)
▪ assertIs(a, b): Confirma ▪ assertIsNotNone(x): Revisa
que a es b (verifica que que x no es None.
son el mismo objeto). ▪ assertIn(a, b): Verifica que a
▪ assertIsNot(a, b): Verifica está en b (b puede ser una
que a no es b. lista, tupla, diccionario, etc.).
▪ assertIsNone(x): Confirma ▪ assertNotIn(a, b): Lo opuesto,
que x es None. confirma que a no está en b…
Estos asserts cubren una amplia gama de casos para comparar valores
y validar resultados/condiciones esperadas en los tests.
Unittest : ejemplo
Unittest : ejemplo
Unittest : beneficios
▪Tests independientes y repetibles.
▪Múltiples casos de prueba.
▪Tests más completos (casos felices y errores).
▪Integración con herramientas de CI.
•Dudas
•Sugerencias
•Cuestiones
•Vamos al código…