Skip to content

Commit cfc0c3a

Browse files
authored
Merge pull request #7298 from wapastorv/main
#13 - Javascript
2 parents 081a641 + c98776c commit cfc0c3a

File tree

2 files changed

+230
-0
lines changed

2 files changed

+230
-0
lines changed
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
/*
2+
* EJERCICIO:
3+
* Crea una función que se encargue de sumar dos números y retornar
4+
* su resultado.
5+
* Crea un test, utilizando las herramientas de tu lenguaje, que sea
6+
* capaz de determinar si esa función se ejecuta correctamente.
7+
*
8+
* DIFICULTAD EXTRA (opcional):
9+
* Crea un diccionario con las siguientes claves y valores:
10+
* "name": "Tu nombre"
11+
* "age": "Tu edad"
12+
* "birth_date": "Tu fecha de nacimiento"
13+
* "programming_languages": ["Listado de lenguajes de programación"]
14+
* Crea dos test:
15+
* - Un primero que determine que existen todos los campos.
16+
* - Un segundo que determine que los datos introducidos son correctos.
17+
*/
18+
19+
/* Los Mecanismos de Pruebas Unitarias en JavaScript son muy variados:
20+
1. Pruebas unitarias: Las pruebas unitarias verifican que una parte específica del código funcione como se espera. para ello se utilizan frameworks de pruebas unitarias:
21+
* Mocha (flexible y extensible).
22+
* Jasmine (sin dependencias externas).
23+
* Jest (Popular en proyectos con Node.js o React)..
24+
* QUnit (usado principalmente con jQuery).
25+
* Vitest (Alternativa moderna de Jest).
26+
27+
2. Pruebas de integración: Las pruebas de integración verifican que los componentes del sistema funcionen correctamente juntos.
28+
se puden usar los mismo frameworks de pruebas unitarias, pero enfocádos en esenarios que involucran varios componentes.
29+
30+
3. Pruebas end-to-end: Las pruebas end-to-end verifican que todo el sistema funcione correctamente. Los frameworks más populares son:
31+
* Selenium (para pruebas web).
32+
* Puppeteer (controla navegadores como Chrome mediante scripts).
33+
* Cypress (para pruebas web).
34+
* TestCafe (para pruebas web).
35+
* playwright (para pruebas web).
36+
37+
4. Pruebas manuales con console.assert(): La función console.assert() de JavaScript permite realizar pruebas manuales.
38+
console.assert(2 + 2 === 4, 'Error: 2 + 2 debería ser 4'); // No se mostrará nada en la consola porque la condición es verdadera.
39+
console.assert(2 + 2 === 5, 'Error: 2 + 2 debería ser 4'); // Se mostrará un mensaje de error en la consola porque la condición es falsa.
40+
41+
42+
*/
43+
function sumar(a, b) {
44+
if (typeof a !== 'number' || typeof b !== 'number') {
45+
throw new Error('Ambos argumentos deben ser números');
46+
}
47+
return a + b;
48+
}
49+
function testSumar(){
50+
console.log('Iniciando pruebas para la función `suma`....');
51+
52+
// Caso 1: Sumar dos numeros positivos
53+
console.assert(sumar(3, 5) === 8, 'Error: suma(3, 5) deberia devolver 8');
54+
55+
// Caso 2: Sumar un numero positivo y un numero negativo
56+
console.assert(sumar(10, -4) === 6, 'Error: suma(10, -4) deberia devolver');
57+
58+
// Caso 3: Sumar dos numeros negativos
59+
console.assert(sumar(-10, -4) === -14, 'Error: suma(-10, -4) deberia devolver -14');
60+
61+
// Caso 4: Sumar dos numeros decimales
62+
console.assert(sumar(3.5, 2.5) === 6, 'Error: suma(3.5, 2.5) deberia devolver 6');
63+
64+
// Caso 5: Sumar un numero y cero
65+
console.assert(sumar(3, 0) === 3, 'Error: suma(3, 0) deberia devolver 3');
66+
67+
// Caso 6: Sumar ceros
68+
console.assert(sumar(0, 0) === 0, 'Error: suma(0, 0) deberia devolver 0');
69+
70+
console.log('Pruebas para la función `suma` finalizadas, todas las pruebas pasaron correctamente.');
71+
}
72+
73+
testSumar();
74+
75+
const persona = {
76+
nombre: 'Walter',
77+
apellido: 'Pastor',
78+
edad: 25,
79+
fechaNacimiento: new Date('1995-01-01'),
80+
lenguajesProgramacion: ['JavaScript', 'Python', 'Java']
81+
}
82+
83+
function testObjetoPersona(){
84+
console.log('Iniciando pruebas para el objeto `persona`....');
85+
86+
// Caso 1: Verificar que el objeto `persona` tenga las propiedades correctas
87+
console.assert(persona.hasOwnProperty('nombre'), 'Error: persona deberia tener la propiedad "nombre"');
88+
console.assert(persona.hasOwnProperty('apellido'), 'Error: persona deberia tener la propiedad "apellido"');
89+
console.assert(persona.hasOwnProperty('edad'), 'Error: persona deberia tener la propiedad "edad"');
90+
console.assert(persona.hasOwnProperty('fechaNacimiento'), 'Error: persona deberia tener la propiedad "fechaNacimiento"');
91+
console.assert(persona.hasOwnProperty('lenguajesProgramacion'), 'Error: persona deberia tener la propiedad "lenguajesProgramacion"');
92+
93+
// Caso 2: Verificar que las propiedades del objeto `persona` tengan los valores correctos
94+
console.assert(typeof persona.nombre === 'string', 'Error: persona.nombre deberia ser un string');
95+
console.assert(typeof persona.apellido === 'string', 'Error: persona.apellido deberia ser un string');
96+
console.assert(typeof persona.edad === 'number', 'Error: persona.edad deberia ser un número');
97+
console.assert(persona.fechaNacimiento instanceof Date, 'Error: persona.fechaNacimiento deberia ser una instancia de Date');
98+
console.assert(Array.isArray(persona.lenguajesProgramacion), 'Error: persona.lenguajesProgramacion deberia ser un array');
99+
100+
// Caso 3: Verificar que el objeto `persona` tenga los métodos correctos (opcional)
101+
console.assert(persona.hasOwnProperty('saludar'), 'Error: persona deberia tener el método "saludar"');
102+
console.assert(typeof persona.saludar === 'function', 'Error: persona.saludar deberia ser una función');
103+
104+
// Caso 4: Verificar que el método `saludar` del objeto `persona` funcione correctamente
105+
106+
107+
108+
console.log('Pruebas para el objeto `persona` finalizadas, todas las pruebas pasaron correctamente.');
109+
}
110+
111+
testObjetoPersona();
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
/*
2+
* EJERCICIO:
3+
* Crea dos variables utilizando los objetos fecha (date, o semejante) de tu lenguaje:
4+
* - Una primera que represente la fecha (día, mes, año, hora, minuto, segundo) actual.
5+
* - Una segunda que represente tu fecha de nacimiento (te puedes inventar la hora).
6+
* Calcula cuántos años han transcurrido entre ambas fechas.
7+
*
8+
* DIFICULTAD EXTRA (opcional):
9+
* Utilizando la fecha de tu cumpleaños, formatéala y muestra su resultado de
10+
* 10 maneras diferentes. Por ejemplo:
11+
* - Día, mes y año.
12+
* - Hora, minuto y segundo.
13+
* - Día de año.
14+
* - Día de la semana.
15+
* - Nombre del mes.
16+
* (lo que se te ocurra...)
17+
*/
18+
19+
const dateNow = new Date();
20+
console.log("Fecha Actual: ",dateNow);
21+
22+
const dateOfBirth = new Date(1993, 6, 21, 10, 30, 0, 0);
23+
console.log("Fecha de Nacimiento: ",dateOfBirth)
24+
25+
26+
const añosTranscurridos = dateNow.getFullYear() - dateOfBirth.getFullYear();
27+
/*const mesesTranscurridos = dateNow.getMonth() - dateOfBrith.getMonth();
28+
const diasTranscurridos = dateNow.getDate() - dateOfBrith.getDate();
29+
const horasTranscurridas = dateNow.getHours() - dateOfBrith.getHours();
30+
const minutosTranscurridos = dateNow.getMinutes() - dateOfBrith.getMinutes();
31+
const segundosTranscurridos = dateNow.getSeconds() - dateOfBrith.getSeconds();*/
32+
33+
console.log("Años Transcurridos: ",añosTranscurridos);
34+
/*console.log("Meses Transcurridos: ",mesesTranscurridos);
35+
console.log("Días Transcurridos: ",diasTranscurridos);
36+
console.log("Horas Transcurridas: ",horasTranscurridas);
37+
console.log("Minutos Transcurridos: ",minutosTranscurridos);
38+
console.log("Segundos Transcurridos: ",segundosTranscurridos);*/
39+
40+
41+
42+
/*console.log("Datos de la fecha actual:")
43+
console.log("Año:", dateNow.getFullYear()); // Año actual
44+
console.log("Mes:", dateNow.getMonth()); // Mes (0 a 11)
45+
console.log("Día:", dateNow.getDate()); // Día del mes
46+
console.log("Día de la semana:", dateNow.getDay()); // Día de la semana (0 a 6)
47+
console.log("Hora:", dateNow.getHours()); // Hora
48+
console.log("Minutos:", dateNow.getMinutes()); // Minutos
49+
console.log("Segundos:", dateNow.getSeconds()); // Segundos
50+
console.log("Milisegundos:", dateNow.getMilliseconds()); // Milisegundos
51+
console.log("Timestamp:", dateNow.getTime()); // Milisegundos desde 1970
52+
53+
console.log("Datos de la fecha de nacimiento:")
54+
console.log("Año:", dateOfBrith.getFullYear()); // Año actual
55+
console.log("Mes:", dateOfBrith.getMonth()); // Mes (0 a 11)
56+
console.log("Día:", dateOfBrith.getDate()); // Día del mes
57+
console.log("Día de la semana:", dateOfBrith.getDay()); // Día de la semana (0 a 6)
58+
console.log("Hora:", dateOfBrith.getHours()); // Hora
59+
console.log("Minutos:", dateOfBrith.getMinutes()); // Minutos
60+
console.log("Segundos:", dateOfBrith.getSeconds()); // Segundos
61+
console.log("Milisegundos:", dateOfBrith.getMilliseconds()); // Milisegundos
62+
console.log("Timestamp:", dateOfBrith.getTime()); // Milisegundos desde 1970
63+
64+
65+
const fechaModificable = new Date();
66+
67+
fechaModificable.setFullYear(2025); // Cambiar el año
68+
fechaModificable.setMonth(5); // Cambiar el mes (junio)
69+
fechaModificable.setDate(15); // Cambiar el día
70+
fechaModificable.setHours(12); // Cambiar la hora
71+
fechaModificable.setMinutes(45); // Cambiar los minutos
72+
fechaModificable.setSeconds(30); // Cambiar los segundos
73+
74+
console.log("Fecha Modificada:", fechaModificable);
75+
76+
77+
const fechaFormateada = new Date();
78+
79+
console.log("ISO:", fechaFormateada.toISOString()); // Formato ISO
80+
console.log("Fecha Local:", fechaFormateada.toLocaleDateString()); // Fecha local
81+
console.log("Hora Local:", fechaFormateada.toLocaleTimeString()); // Hora local
82+
console.log("Fecha y Hora Local:", fechaFormateada.toLocaleString()); // Todo en uno*/
83+
84+
85+
//Formato ISO (Internacional)
86+
console.log("ISO:", dateOfBirth.toISOString());
87+
// Resultado: 1993-07-21T10:30:00.000Z
88+
89+
//Fecha Local (Idioma del Sistema)
90+
console.log("Fecha Local:", dateOfBirth.toLocaleDateString());
91+
92+
//Hora Local
93+
console.log("Hora Local:", dateOfBirth.toLocaleTimeString());
94+
95+
//Fecha y Hora Local
96+
console.log("Fecha y Hora Local:", dateOfBirth.toLocaleString());
97+
98+
//Fecha en Formato Personalizado (Manual)
99+
const dia = dateOfBirth.getDate();
100+
const mes = dateOfBirth.getMonth() + 1;
101+
const anio = dateOfBirth.getFullYear();
102+
console.log(`Fecha Personalizada: ${dia}-${mes}-${anio}`);
103+
104+
//Día de la Semana y Fecha Completa (en Inglés)
105+
const opciones = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
106+
console.log("Día y Fecha Completa:", dateOfBirth.toLocaleDateString('en-US', opciones));
107+
108+
//Solo el Mes y el Año
109+
console.log("Mes y Año:", `${dateOfBirth.getMonth() + 1}/${dateOfBirth.getFullYear()}`);
110+
111+
//Formato UTC
112+
console.log("UTC:", dateOfBirth.toUTCString());
113+
114+
//Timestamp (Milisegundos desde 1970)
115+
console.log("Timestamp:", dateOfBirth.getTime());
116+
117+
//Día, Mes y Año en Cadena de Texto
118+
const nombresMeses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];
119+
console.log(`Día, Mes y Año en Texto: ${dia} de ${nombresMeses[mes - 1]} de ${anio}`);

0 commit comments

Comments
 (0)