"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Marco de prueba unitaria: prueba unitaria en Python

Marco de prueba unitaria: prueba unitaria en Python

Publicado el 2024-11-08
Navegar:318

Unit test framework - unittest in Python

En Python, uno de los marcos de pruebas unitarias más utilizados es unittest, que se incluye en la biblioteca estándar. Proporciona un amplio conjunto de herramientas para crear y ejecutar pruebas, así como para informar resultados.

Características clave del marco unittest

  1. Caso de prueba: un caso de prueba se crea subclasificando unittest.TestCase. Cada método de la clase que comienza con test_ se considera una prueba.

  2. Aserciones: el marco proporciona una variedad de métodos de aserción para verificar los resultados esperados, como afirmarEqual, afirmarVerdadero, afirmarFalso, etc.

  3. Test Runner: el marco incluye un ejecutor de pruebas que ejecuta las pruebas e informa los resultados.

Estructura básica de una prueba unitaria

  1. Importar el módulo unittest: comience importando la biblioteca unittest.

  2. Crear un caso de prueba: definir una clase que herede de unittest.TestCase.

  3. Definir métodos de prueba: cada método debe comenzar con test_ y contener aserciones para verificar el comportamiento esperado.

  4. Ejecutar las pruebas: use unittest.main() para ejecutar las pruebas si el script se ejecuta directamente.

Ejemplo sencillo

Aquí hay un ejemplo sencillo que demuestra cómo utilizar el marco de prueba unitaria para probar una función simple.

Función a probar

Primero, creemos una función simple que probaremos:

funciones_matemáticas.py

def agregar(a, b):
devolver una b

def restar(a, b):
devolver a-b

Prueba unitaria para la función

Ahora crearemos una prueba unitaria para las funciones de suma y resta:

test_math_functions.py

importar prueba unitaria
de math_functions importar sumar, restar # Importar las funciones a probar

clase TestMathFunctions(unittest.TestCase):

def test_add(self):
    self.assertEqual(add(2, 3), 5)          # Test case: 2   3 = 5
    self.assertEqual(add(-1, 1), 0)         # Test case: -1   1 = 0
    self.assertEqual(add(0, 0), 0)          # Test case: 0   0 = 0

def test_subtract(self):
    self.assertEqual(subtract(5, 3), 2)     # Test case: 5 - 3 = 2
    self.assertEqual(subtract(-1, -1), 0)   # Test case: -1 - (-1) = 0
    self.assertEqual(subtract(0, 5), -5)    # Test case: 0 - 5 = -5

si nombre == 'principal':
prueba unitaria.main()

Explicación de la Prueba Unitaria

  1. Declaraciones de importación:

importar prueba unitaria: Importa el módulo de prueba unitaria.

de math_functions importar sumar, restar: Importa las funciones que queremos probar.

  1. Creación de un caso de prueba:

clase TestMathFunctions(unittest.TestCase): define una clase de caso de prueba que hereda de unittest.TestCase.

  1. Definición de métodos de prueba:

Cada método que comienza con test_ representa una prueba separada.

Dentro de cada método de prueba, self.assertEqual() comprueba si la salida de la función coincide con el valor esperado.

  1. Ejecución de las pruebas:

if name == 'main': unittest.main(): Esta línea permite que el script ejecute las pruebas cuando se ejecuta directamente.

Ejecución de las pruebas

Para ejecutar las pruebas, simplemente ejecute el script test_math_functions.py. Puedes hacer esto desde la línea de comando:

python test_math_functions.py

Producción

Si todas las pruebas pasan, verá un resultado similar a este:

..

Ejecuté 2 pruebas en 0.001s

DE ACUERDO

Esto indica que los métodos test_add y test_subtract se aprobaron correctamente. Si alguna afirmación falla, unittest informará la falla, mostrando qué prueba falló y por qué.

Conclusión

El marco de pruebas unitarias en Python proporciona una forma sencilla y eficaz de crear y ejecutar pruebas unitarias. Al escribir pruebas para sus funciones, puede asegurarse de que se comporten como se espera y mantengan una alta calidad del código durante todo el proceso de desarrollo.

Declaración de liberación Este artículo se reproduce en: https://dev.to/mrcaption49/crud-functionality-in-django-19n2?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3