Skip to content

Commit 510277e

Browse files
committed
#13 php
1 parent 613b798 commit 510277e

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
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

Comments
 (0)