1+ def sum (a , b ):
2+ return a + b
3+
4+ data = {
5+ 'name' : 'Diego' ,
6+ 'age' : 28 ,
7+ 'birth_day' : '1996-11-08' ,
8+ 'programming_languages' : ['Python' , 'Javascript' , 'Swift' ]
9+ }
10+
11+ import unittest
12+ from idiegorojas import sum
13+
14+ '''
15+ * unittest.TestCase: Es la clase base para crear pruebas. Cada método que comienza con test_ es una prueba individual.
16+ * self.assertEqual: Es un método que verifica si dos valores son iguales. Si no lo son, la prueba falla.
17+ * unittest.main(): Ejecuta todas las pruebas definidas en la clase.
18+ '''
19+
20+
21+ class TestSumar (unittest .TestCase ):
22+ def test_sumar_numeros_positivos (self ):
23+ self .assertEqual (sum (2 , 3 ), 5 )
24+ self .assertEqual (sum (- 1 , - 1 ), - 2 )
25+ self .assertEqual (sum (0 , 0 ), 0 )
26+
27+ def test_sumar_tipo (self ):
28+ with self .assertRaises (ValueError ):
29+ sum ("5" , 7 )
30+ with self .assertRaises (ValueError ):
31+ sum (5 , "7" )
32+ with self .assertRaises (ValueError ):
33+ sum ("5" , "7" )
34+ with self .assertRaises (ValueError ):
35+ sum ("a" , 7 )
36+ with self .assertRaises (ValueError ):
37+ sum (None , 7 )
38+
39+
40+ if __name__ == '__main__' :
41+ unittest .main ()
42+
43+
44+ # Extra
45+
46+ import unittest
47+ from idiegorojas import data
48+
49+ class TestDict (unittest .TestCase ):
50+
51+ def test_existe_campos (self ):
52+ campos_requerido = ['name' , 'age' , 'birth_day' , 'programming_languages' ]
53+ for field in campos_requerido :
54+ self .assertIn (field , data )
55+
56+ def test_tipo_dato_correcto (self ):
57+ self .assertIsInstance (data ['name' ], str )
58+ self .assertIsInstance (data ['age' ], int )
59+ self .assertIsInstance (data ['birth_day' ], str )
60+ self .assertIsInstance (data ['programming_languages' ], list )
61+
62+ def test_valores_correctos (self ):
63+ self .assertEqual (data ['name' ], 'Diego' )
64+ self .assertEqual (data ['age' ], 28 )
65+ self .assertEqual (data ['birth_day' ], '1996-11-08' )
66+ self .assertIn ('Python' , data ['programming_languages' ])
67+ self .assertIn ('Javascript' , data ['programming_languages' ])
68+ self .assertIn ('Swift' , data ['programming_languages' ])
69+
70+
71+ if __name__ == '__main__' :
72+ unittest .main ()
0 commit comments