1
+ // Importamos la biblioteca de pruebas Jest
2
+ const assert = require ( 'assert' ) ;
3
+
4
+ /**
5
+ * Función que suma dos números y retorna el resultado.
6
+ * @param {number } a Primer número a sumar.
7
+ * @param {number } b Segundo número a sumar.
8
+ * @return {number } La suma de a y b.
9
+ */
10
+ function suma ( a , b ) {
11
+ return a + b ;
12
+ }
13
+
14
+ /**
15
+ * Crea y retorna un objeto con datos personales.
16
+ * @return {Object } Objeto con datos personales.
17
+ */
18
+ function crearObjeto ( ) {
19
+ return {
20
+ name : "Tu nombre" ,
21
+ age : 30 ,
22
+ birth_date : "1993-01-01" ,
23
+ programming_languages : [ "JavaScript" , "Python" , "Java" ]
24
+ } ;
25
+ }
26
+
27
+ // Pruebas unitarias
28
+ describe ( 'Pruebas de la función suma' , ( ) => {
29
+ test ( 'Suma de 2 y 3 debería ser 5' , ( ) => {
30
+ assert . strictEqual ( suma ( 2 , 3 ) , 5 ) ;
31
+ } ) ;
32
+
33
+ test ( 'Suma de -1 y 1 debería ser 0' , ( ) => {
34
+ assert . strictEqual ( suma ( - 1 , 1 ) , 0 ) ;
35
+ } ) ;
36
+
37
+ test ( 'Suma de -2 y -3 debería ser -5' , ( ) => {
38
+ assert . strictEqual ( suma ( - 2 , - 3 ) , - 5 ) ;
39
+ } ) ;
40
+ } ) ;
41
+
42
+ describe ( 'Pruebas del objeto de datos personales' , ( ) => {
43
+ const objeto = crearObjeto ( ) ;
44
+
45
+ test ( 'El objeto debe contener todas las claves requeridas' , ( ) => {
46
+ assert ( objeto . hasOwnProperty ( 'name' ) , "El objeto debe contener la clave 'name'" ) ;
47
+ assert ( objeto . hasOwnProperty ( 'age' ) , "El objeto debe contener la clave 'age'" ) ;
48
+ assert ( objeto . hasOwnProperty ( 'birth_date' ) , "El objeto debe contener la clave 'birth_date'" ) ;
49
+ assert ( objeto . hasOwnProperty ( 'programming_languages' ) , "El objeto debe contener la clave 'programming_languages'" ) ;
50
+ } ) ;
51
+
52
+ test ( 'Los datos en el objeto deben ser correctos' , ( ) => {
53
+ assert . strictEqual ( objeto . name , "Tu nombre" , "El nombre debe ser 'Tu nombre'" ) ;
54
+ assert ( typeof objeto . age === 'number' , "La edad debe ser un número" ) ;
55
+ assert ( / ^ \d { 4 } - \d { 2 } - \d { 2 } $ / . test ( objeto . birth_date ) , "La fecha de nacimiento debe tener el formato YYYY-MM-DD" ) ;
56
+ assert ( Array . isArray ( objeto . programming_languages ) , "Los lenguajes de programación deben ser un array" ) ;
57
+ assert ( objeto . programming_languages . length > 0 , "La lista de lenguajes de programación no debe estar vacía" ) ;
58
+ } ) ;
59
+ } ) ;
0 commit comments