Capítulo 8: Manejo de Errores y Pruebas
Ejercicios Prácticos para el Capítulo 8: Manejo de Errores y Pruebas
Para reforzar tu comprensión del manejo de errores y pruebas en JavaScript, esta sección proporciona ejercicios prácticos centrados en estos conceptos. Estos ejercicios están diseñados para ayudarte a aplicar las teorías discutidas en el Capítulo 8 mediante la implementación práctica utilizando marcos de prueba populares y técnicas de manejo de errores.
Ejercicio 1: Manejo de Excepciones con Try, Catch, Finally
Objetivo: Escribe una función que intente analizar datos JSON y use try, catch, finally para manejar cualquier error que pueda ocurrir durante el análisis, registrando el error y asegurando que se realice una acción de limpieza.
Solución:
function safeJsonParse(jsonString) {
let parsedData = null;
try {
parsedData = JSON.parse(jsonString);
console.log("Parsing successful:", parsedData);
} catch (error) {
console.error("Failed to parse JSON:", error);
} finally {
console.log("Parse attempt finished.");
}
return parsedData;
}
// Example usage
const jsonData = '{"name": "John", "age": 30}';
const malformedJsonData = '{"name": "John", age: 30}';
safeJsonParse(jsonData); // Should log the parsed data
safeJsonParse(malformedJsonData); // Should log an error
Ejercicio 2: Pruebas con Jest
Objetivo: Crea una prueba con Jest para una función simple que suma dos números. Asegúrate de que la prueba verifique la corrección de la función.
Solución:
// sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
// sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
// Run this test by adding `"test": "jest"` to your package.json scripts and running `npm test` in your terminal.
Ejercicio 3: Pruebas de Integración con Mocha y Chai
Objetivo: Escribe una prueba de integración para una función que obtiene datos de usuario desde una API. Usa Mocha para el marco de prueba y Chai para las aserciones. Supón que la API devuelve un objeto JSON.
Solución:
// userFetcher.js
const fetch = require('node-fetch');
async function fetchUser(userId) {
const response = await fetch(`https://jsonplaceholder.typicode.com/users/${userId}`);
return response.json();
}
module.exports = fetchUser;
// userFetcher.test.js
const fetchUser = require('./userFetcher');
const chai = require('chai');
const expect = chai.expect;
describe('fetchUser', function() {
it('should fetch user data', async function() {
const user = await fetchUser(1);
expect(user).to.have.property('id');
expect(user.id).to.equal(1);
});
});
// Ensure you have Mocha and Chai installed (`npm install --save-dev mocha chai`), and set the test script in package.json: `"test": "mocha"`
Estos ejercicios están diseñados para solidificar tu comprensión sobre el manejo de errores y las prácticas de pruebas cubiertas en el Capítulo 8. Al completar estas tareas, no solo practicarás la implementación de mecanismos de manejo de errores, sino que también obtendrás experiencia práctica escribiendo pruebas unitarias y de integración utilizando marcos de prueba populares de JavaScript. Este enfoque práctico te ayudará a construir una base sólida para escribir aplicaciones JavaScript más seguras, limpias y confiables.
Ejercicios Prácticos para el Capítulo 8: Manejo de Errores y Pruebas
Para reforzar tu comprensión del manejo de errores y pruebas en JavaScript, esta sección proporciona ejercicios prácticos centrados en estos conceptos. Estos ejercicios están diseñados para ayudarte a aplicar las teorías discutidas en el Capítulo 8 mediante la implementación práctica utilizando marcos de prueba populares y técnicas de manejo de errores.
Ejercicio 1: Manejo de Excepciones con Try, Catch, Finally
Objetivo: Escribe una función que intente analizar datos JSON y use try, catch, finally para manejar cualquier error que pueda ocurrir durante el análisis, registrando el error y asegurando que se realice una acción de limpieza.
Solución:
function safeJsonParse(jsonString) {
let parsedData = null;
try {
parsedData = JSON.parse(jsonString);
console.log("Parsing successful:", parsedData);
} catch (error) {
console.error("Failed to parse JSON:", error);
} finally {
console.log("Parse attempt finished.");
}
return parsedData;
}
// Example usage
const jsonData = '{"name": "John", "age": 30}';
const malformedJsonData = '{"name": "John", age: 30}';
safeJsonParse(jsonData); // Should log the parsed data
safeJsonParse(malformedJsonData); // Should log an error
Ejercicio 2: Pruebas con Jest
Objetivo: Crea una prueba con Jest para una función simple que suma dos números. Asegúrate de que la prueba verifique la corrección de la función.
Solución:
// sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
// sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
// Run this test by adding `"test": "jest"` to your package.json scripts and running `npm test` in your terminal.
Ejercicio 3: Pruebas de Integración con Mocha y Chai
Objetivo: Escribe una prueba de integración para una función que obtiene datos de usuario desde una API. Usa Mocha para el marco de prueba y Chai para las aserciones. Supón que la API devuelve un objeto JSON.
Solución:
// userFetcher.js
const fetch = require('node-fetch');
async function fetchUser(userId) {
const response = await fetch(`https://jsonplaceholder.typicode.com/users/${userId}`);
return response.json();
}
module.exports = fetchUser;
// userFetcher.test.js
const fetchUser = require('./userFetcher');
const chai = require('chai');
const expect = chai.expect;
describe('fetchUser', function() {
it('should fetch user data', async function() {
const user = await fetchUser(1);
expect(user).to.have.property('id');
expect(user.id).to.equal(1);
});
});
// Ensure you have Mocha and Chai installed (`npm install --save-dev mocha chai`), and set the test script in package.json: `"test": "mocha"`
Estos ejercicios están diseñados para solidificar tu comprensión sobre el manejo de errores y las prácticas de pruebas cubiertas en el Capítulo 8. Al completar estas tareas, no solo practicarás la implementación de mecanismos de manejo de errores, sino que también obtendrás experiencia práctica escribiendo pruebas unitarias y de integración utilizando marcos de prueba populares de JavaScript. Este enfoque práctico te ayudará a construir una base sólida para escribir aplicaciones JavaScript más seguras, limpias y confiables.
Ejercicios Prácticos para el Capítulo 8: Manejo de Errores y Pruebas
Para reforzar tu comprensión del manejo de errores y pruebas en JavaScript, esta sección proporciona ejercicios prácticos centrados en estos conceptos. Estos ejercicios están diseñados para ayudarte a aplicar las teorías discutidas en el Capítulo 8 mediante la implementación práctica utilizando marcos de prueba populares y técnicas de manejo de errores.
Ejercicio 1: Manejo de Excepciones con Try, Catch, Finally
Objetivo: Escribe una función que intente analizar datos JSON y use try, catch, finally para manejar cualquier error que pueda ocurrir durante el análisis, registrando el error y asegurando que se realice una acción de limpieza.
Solución:
function safeJsonParse(jsonString) {
let parsedData = null;
try {
parsedData = JSON.parse(jsonString);
console.log("Parsing successful:", parsedData);
} catch (error) {
console.error("Failed to parse JSON:", error);
} finally {
console.log("Parse attempt finished.");
}
return parsedData;
}
// Example usage
const jsonData = '{"name": "John", "age": 30}';
const malformedJsonData = '{"name": "John", age: 30}';
safeJsonParse(jsonData); // Should log the parsed data
safeJsonParse(malformedJsonData); // Should log an error
Ejercicio 2: Pruebas con Jest
Objetivo: Crea una prueba con Jest para una función simple que suma dos números. Asegúrate de que la prueba verifique la corrección de la función.
Solución:
// sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
// sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
// Run this test by adding `"test": "jest"` to your package.json scripts and running `npm test` in your terminal.
Ejercicio 3: Pruebas de Integración con Mocha y Chai
Objetivo: Escribe una prueba de integración para una función que obtiene datos de usuario desde una API. Usa Mocha para el marco de prueba y Chai para las aserciones. Supón que la API devuelve un objeto JSON.
Solución:
// userFetcher.js
const fetch = require('node-fetch');
async function fetchUser(userId) {
const response = await fetch(`https://jsonplaceholder.typicode.com/users/${userId}`);
return response.json();
}
module.exports = fetchUser;
// userFetcher.test.js
const fetchUser = require('./userFetcher');
const chai = require('chai');
const expect = chai.expect;
describe('fetchUser', function() {
it('should fetch user data', async function() {
const user = await fetchUser(1);
expect(user).to.have.property('id');
expect(user.id).to.equal(1);
});
});
// Ensure you have Mocha and Chai installed (`npm install --save-dev mocha chai`), and set the test script in package.json: `"test": "mocha"`
Estos ejercicios están diseñados para solidificar tu comprensión sobre el manejo de errores y las prácticas de pruebas cubiertas en el Capítulo 8. Al completar estas tareas, no solo practicarás la implementación de mecanismos de manejo de errores, sino que también obtendrás experiencia práctica escribiendo pruebas unitarias y de integración utilizando marcos de prueba populares de JavaScript. Este enfoque práctico te ayudará a construir una base sólida para escribir aplicaciones JavaScript más seguras, limpias y confiables.
Ejercicios Prácticos para el Capítulo 8: Manejo de Errores y Pruebas
Para reforzar tu comprensión del manejo de errores y pruebas en JavaScript, esta sección proporciona ejercicios prácticos centrados en estos conceptos. Estos ejercicios están diseñados para ayudarte a aplicar las teorías discutidas en el Capítulo 8 mediante la implementación práctica utilizando marcos de prueba populares y técnicas de manejo de errores.
Ejercicio 1: Manejo de Excepciones con Try, Catch, Finally
Objetivo: Escribe una función que intente analizar datos JSON y use try, catch, finally para manejar cualquier error que pueda ocurrir durante el análisis, registrando el error y asegurando que se realice una acción de limpieza.
Solución:
function safeJsonParse(jsonString) {
let parsedData = null;
try {
parsedData = JSON.parse(jsonString);
console.log("Parsing successful:", parsedData);
} catch (error) {
console.error("Failed to parse JSON:", error);
} finally {
console.log("Parse attempt finished.");
}
return parsedData;
}
// Example usage
const jsonData = '{"name": "John", "age": 30}';
const malformedJsonData = '{"name": "John", age: 30}';
safeJsonParse(jsonData); // Should log the parsed data
safeJsonParse(malformedJsonData); // Should log an error
Ejercicio 2: Pruebas con Jest
Objetivo: Crea una prueba con Jest para una función simple que suma dos números. Asegúrate de que la prueba verifique la corrección de la función.
Solución:
// sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
// sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
// Run this test by adding `"test": "jest"` to your package.json scripts and running `npm test` in your terminal.
Ejercicio 3: Pruebas de Integración con Mocha y Chai
Objetivo: Escribe una prueba de integración para una función que obtiene datos de usuario desde una API. Usa Mocha para el marco de prueba y Chai para las aserciones. Supón que la API devuelve un objeto JSON.
Solución:
// userFetcher.js
const fetch = require('node-fetch');
async function fetchUser(userId) {
const response = await fetch(`https://jsonplaceholder.typicode.com/users/${userId}`);
return response.json();
}
module.exports = fetchUser;
// userFetcher.test.js
const fetchUser = require('./userFetcher');
const chai = require('chai');
const expect = chai.expect;
describe('fetchUser', function() {
it('should fetch user data', async function() {
const user = await fetchUser(1);
expect(user).to.have.property('id');
expect(user.id).to.equal(1);
});
});
// Ensure you have Mocha and Chai installed (`npm install --save-dev mocha chai`), and set the test script in package.json: `"test": "mocha"`
Estos ejercicios están diseñados para solidificar tu comprensión sobre el manejo de errores y las prácticas de pruebas cubiertas en el Capítulo 8. Al completar estas tareas, no solo practicarás la implementación de mecanismos de manejo de errores, sino que también obtendrás experiencia práctica escribiendo pruebas unitarias y de integración utilizando marcos de prueba populares de JavaScript. Este enfoque práctico te ayudará a construir una base sólida para escribir aplicaciones JavaScript más seguras, limpias y confiables.