Skip to content

Commit 613b798

Browse files
committed
#13 javascript
1 parent a941cba commit 613b798

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
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

Comments
 (0)