1
+ <?php
2
+
3
+ /**
4
+ * Función que suma dos números y retorna el resultado.
5
+ * @param int|float $a Primer número a sumar.
6
+ * @param int|float $b Segundo número a sumar.
7
+ * @return int|float La suma de a y b.
8
+ */
9
+ function suma ($ a , $ b ) {
10
+ return $ a + $ b ;
11
+ }
12
+
13
+ /**
14
+ * Crea y retorna un array asociativo con datos personales.
15
+ * @return array Array asociativo con datos personales.
16
+ */
17
+ function crearArrayAsociativo () {
18
+ return [
19
+ "name " => "Tu nombre " ,
20
+ "age " => 30 ,
21
+ "birth_date " => "1993-01-01 " ,
22
+ "programming_languages " => ["PHP " , "JavaScript " , "Python " ]
23
+ ];
24
+ }
25
+
26
+ // Incluimos PHPUnit para las pruebas
27
+ use PHPUnit \Framework \TestCase ;
28
+
29
+ /**
30
+ * Clase de pruebas unitarias para las funciones suma y crearArrayAsociativo.
31
+ */
32
+ class PruebasUnitarias extends TestCase
33
+ {
34
+ /**
35
+ * Prueba la función suma con varios casos.
36
+ */
37
+ public function testSuma ()
38
+ {
39
+ $ this ->assertEquals (5 , suma (2 , 3 ), "La suma de 2 y 3 debería ser 5 " );
40
+ $ this ->assertEquals (0 , suma (-1 , 1 ), "La suma de -1 y 1 debería ser 0 " );
41
+ $ this ->assertEquals (-5 , suma (-2 , -3 ), "La suma de -2 y -3 debería ser -5 " );
42
+ }
43
+
44
+ /**
45
+ * Prueba la existencia de todas las claves en el array asociativo.
46
+ */
47
+ public function testExistenciaClaves ()
48
+ {
49
+ $ array = crearArrayAsociativo ();
50
+ $ this ->assertArrayHasKey ('name ' , $ array , "El array debe contener la clave 'name' " );
51
+ $ this ->assertArrayHasKey ('age ' , $ array , "El array debe contener la clave 'age' " );
52
+ $ this ->assertArrayHasKey ('birth_date ' , $ array , "El array debe contener la clave 'birth_date' " );
53
+ $ this ->assertArrayHasKey ('programming_languages ' , $ array , "El array debe contener la clave 'programming_languages' " );
54
+ }
55
+
56
+ /**
57
+ * Prueba que los datos en el array asociativo son correctos.
58
+ */
59
+ public function testDatosCorrectos ()
60
+ {
61
+ $ array = crearArrayAsociativo ();
62
+ $ this ->assertEquals ("Tu nombre " , $ array ['name ' ], "El nombre debe ser 'Tu nombre' " );
63
+ $ this ->assertIsInt ($ array ['age ' ], "La edad debe ser un entero " );
64
+ $ this ->assertMatchesRegularExpression ('/^\d{4}-\d{2}-\d{2}$/ ' , $ array ['birth_date ' ], "La fecha de nacimiento debe tener el formato YYYY-MM-DD " );
65
+ $ this ->assertIsArray ($ array ['programming_languages ' ], "Los lenguajes de programación deben ser un array " );
66
+ $ this ->assertNotEmpty ($ array ['programming_languages ' ], "La lista de lenguajes de programación no debe estar vacía " );
67
+ }
68
+ }
69
+
70
+ ?>
0 commit comments