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