You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Pruebas unitarias: Son pruebas que se aplican a funciones o métodos individuales de un programa para verificar que funcionan correctamente de manera aislada.
5
+
6
+
importunittest# Librería estándar de Python para pruebas unitarias.
7
+
fromdatetimeimportdatetime, date# Importamos datetime y date para trabajar con fechas
8
+
9
+
10
+
defsumar(a, b):
11
+
# Verificamos que ambos argumentos sean números (int o float)
raiseValueError("Los argumentos deben ser números")
14
+
# Retornamos la suma de a y b
15
+
returna+b
16
+
17
+
# Definimos una clase de prueba que hereda de unittest.TestCase
18
+
# Esta clase contendrá nuestros métodos de prueba
19
+
# nota: En unittest, cualquier método dentro de una clase que herede de unittest.TestCase será reconocido como un test solo si su nombre comienza con test_. Si no usa ese prefijo, unittest lo ignorará y no lo ejecutará.
20
+
classTestSum(unittest.TestCase):
21
+
22
+
deftest_sum(self):
23
+
# Comprobamos que sumar(5,4) devuelve 9
24
+
self.assertEqual(sumar(5, 4), 9)
25
+
# Otros casos de prueba con diferentes combinaciones
26
+
self.assertEqual(sumar(-2, 1), -1)
27
+
self.assertEqual(sumar(0, 0), 0)
28
+
self.assertEqual(sumar(-1, -1), -2)
29
+
self.assertEqual(sumar(1.5, 2.5), 4.0)
30
+
self.assertEqual(sumar(1, -1), 0)
31
+
32
+
33
+
# Comprobamos que la función devuelve un error si los argumentos no son números
34
+
# En este caso, usamos assertRaises para verificar que se lanza una excepción ValueError
35
+
deftest_sum_invalid(self):
36
+
# Verificamos que si se pasan valores inválidos, se lance ValueError
37
+
withself.assertRaises(ValueError):
38
+
sumar("5", 3)
39
+
withself.assertRaises(ValueError):
40
+
sumar(5, "3")
41
+
withself.assertRaises(ValueError):
42
+
sumar("5", "3")
43
+
withself.assertRaises(ValueError):
44
+
sumar(None, 3)
45
+
withself.assertRaises(ValueError):
46
+
sumar(5, None)
47
+
withself.assertRaises(ValueError):
48
+
sumar(None, None)
49
+
withself.assertRaises(ValueError):
50
+
sumar("a", 3)
51
+
withself.assertRaises(ValueError):
52
+
sumar(5, "b")
53
+
#Se usa assertEqual para comparar resultados y assertRaises para validar excepciones esperadas.
54
+
55
+
#Esto permite que los tests solo se ejecuten cuando el script se corre directamente y no si se importa desde otro archivo.
56
+
# if __name__ == '__main__':
57
+
# unittest.main()
58
+
59
+
60
+
61
+
62
+
"""* DIFICULTAD EXTRA (opcional):
63
+
* Crea un diccionario con las siguientes claves y valores:
64
+
* "name": "Tu nombre"
65
+
* "age": "Tu edad"
66
+
* "birth_date": "Tu fecha de nacimiento"
67
+
* "programming_languages": ["Listado de lenguajes de programación"]
68
+
* Crea dos test:
69
+
* - Un primero que determine que existen todos los campos.
70
+
* - Un segundo que determine que los datos introducidos son correctos."""
71
+
72
+
73
+
74
+
75
+
76
+
# Creamos una clase de prueba que hereda de unittest.TestCase
77
+
classTestData(unittest.TestCase):
78
+
79
+
# Este método se ejecuta antes de cada test, para preparar datos comunes
80
+
defsetUp(self):
81
+
# Creamos un diccionario con datos ficticios de ejemplo
82
+
self.data= {
83
+
"name": "Complex303", # Cadena
84
+
"age": 2, # Entero
85
+
# Convertimos la cadena "01-01-16" a objeto date usando strptime y date()
0 commit comments