Escritura de Pruebas con unittest
Desliza para mostrar el menú
Cuando se desea asegurar que el código funciona como se espera, la escritura de pruebas automatizadas es fundamental. El módulo unittest de Python es un marco integrado que permite crear y organizar pruebas fácilmente. Se crean casos de prueba mediante clases que heredan de unittest.TestCase. Dentro de estas clases, se definen métodos cuyos nombres comienzan con test_. Cada método verifica un aspecto específico del código.
Un conjunto de pruebas es una colección de casos de prueba que pueden ejecutarse juntos. Por defecto, unittest detecta y ejecuta todos los métodos test_ en las clases TestCase. Para comprobar si el código produce los resultados esperados, se utilizan métodos de aserción como assertEqual, assertTrue, assertFalse y assertRaises. Estos métodos de aserción comparan los resultados reales con los esperados e informan fallos si no coinciden.
Para ejecutar las pruebas, se puede utilizar la línea de comandos o llamar a unittest.main() al final del archivo de pruebas.
assertRaises sigue un patrón distinto en comparación con otros métodos de aserción como assertEqual o assertTrue. En lugar de comprobar un valor final, funciona como un gestor de contexto utilizando la instrucción with para crear una zona protegida. Esto permite que la prueba supervise el código mientras se ejecuta y "capture" el error esperado.
1234567891011121314151617181920212223import unittest def add(a, b): return a + b def divide(a, b): return a / b class TestMathFunctions(unittest.TestCase): def test_add_positive_numbers(self): self.assertEqual(add(2, 3), 5) def test_add_negative_numbers(self): self.assertEqual(add(-2, -3), -5) def test_divide_normal(self): self.assertAlmostEqual(divide(10, 2), 5.0) def test_divide_by_zero(self): with self.assertRaises(ZeroDivisionError): divide(10, 0) unittest.main(argv=['first-arg-is-ignored'], exit=False)
La función unittest.main() en este capítulo incluye un par de parámetros adicionales requeridos solo para este entorno de aprendizaje. Ayudan a que el código se ejecute correctamente en la plataforma y no forman parte de los conceptos principales de Python que necesitas aprender en este momento.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla