|
| 1 | +# #13 PRUEBAS UNITARIAS |
| 2 | +## Ejercicio |
| 3 | + |
| 4 | + |
| 5 | +""" /* |
| 6 | + * EJERCICIO: |
| 7 | + * Crea una función que se encargue de sumar dos números y retornar |
| 8 | + * su resultado. |
| 9 | + * Crea un test, utilizando las herramientas de tu lenguaje, que sea |
| 10 | + * capaz de determinar si esa función se ejecuta correctamente. |
| 11 | + * |
| 12 | + * DIFICULTAD EXTRA (opcional): |
| 13 | + * Crea un diccionario con las siguientes claves y valores: |
| 14 | + * "name": "Tu nombre" |
| 15 | + * "age": "Tu edad" |
| 16 | + * "birth_date": "Tu fecha de nacimiento" |
| 17 | + * "programming_languages": ["Listado de lenguajes de programación"] |
| 18 | + * Crea dos test: |
| 19 | + * - Un primero que determine que existen todos los campos. |
| 20 | + * - Un segundo que determine que los datos introducidos son correctos. |
| 21 | + */ """ |
| 22 | + |
| 23 | + |
| 24 | +from datetime import datetime |
| 25 | +import unittest |
| 26 | + |
| 27 | +def suma(num1, num2): |
| 28 | + if not num1 or not num2: |
| 29 | + raise ValueError("Los valores deben de tener valor") |
| 30 | + elif not isinstance(num1,(int,float)) or not isinstance(num2,(int,float)): |
| 31 | + raise ValueError("Los valores deben de ser enteros o float") |
| 32 | + return num1 + num2 |
| 33 | + |
| 34 | +class Suma(unittest.TestCase): |
| 35 | + def test_suma(self): |
| 36 | + self.assertEqual(suma(5,2),7) |
| 37 | + self.assertEqual(suma(3,2.5),5.5) |
| 38 | + |
| 39 | + def test_inst_suma(self): |
| 40 | + with self.assertRaises(ValueError): |
| 41 | + suma(7,"d") |
| 42 | + with self.assertRaises(ValueError): |
| 43 | + suma("a", 7) |
| 44 | + |
| 45 | + |
| 46 | +#Dificultad Extra |
| 47 | +class TestExtra(unittest.TestCase): |
| 48 | + |
| 49 | + def setUp(self): |
| 50 | + self.my_dict = {"name": "jptxaya","age":45,"birth_date":datetime(1975,4,3),"programming_languages":["react","python","java"]} |
| 51 | + |
| 52 | + def test_all_keys(self): |
| 53 | + dic_keys = ["name","age","birth_date","programming_languages"] |
| 54 | + for dic_key in dic_keys: |
| 55 | + self.assertIn(dic_key, self.my_dict.keys(),"La clave {dic_key} no esta en el diccionario") |
| 56 | + |
| 57 | + def test_correct_values(self): |
| 58 | + self.assertIsInstance(self.my_dict.get("name"),str,"Tipo de dato no valido") |
| 59 | + self.assertIsInstance(self.my_dict.get("age"),int,"Tipo de dato no valido") |
| 60 | + self.assertIsInstance(self.my_dict.get("birth_date"),datetime,"Tipo de dato no valido") |
| 61 | + self.assertIsInstance(self.my_dict.get("programming_languages"),list,"Tipo de dato no valido") |
| 62 | + for language in self.my_dict.get("programming_languages"): |
| 63 | + self.assertIsInstance(language,str,"Tipo de dato no valido") |
| 64 | + |
| 65 | + |
| 66 | +if __name__ == '__main__': |
| 67 | + unittest.main(verbosity=3) |
| 68 | + |
| 69 | + |
0 commit comments