Thanks to visit codestin.com
Credit goes to github.com

Skip to content

dnbsammie/Reto03

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

RETO 03 - Sistema de Gestión de Biblioteca con Pruebas Unitarias en Java

Tabla de Contenidos:
  1. Sobre el proyecto
  2. Objetivos
  3. Flujo del Sistema
  4. Uso
  5. Galeria
  6. Código
  7. Contacto

Sobre el proyecto 📚

Introducción:

En el desarrollo de software, la implementación de pruebas unitarias es fundamental para garantizar la calidad y fiabilidad del código. En este proyecto se creara un sistema de gestión de bibloteca en Java, aplicando pruebas unitarias con JUnit 5 y Mockito.

Puedes encontrar el video aquí 🎥.

Puedes encontrar el repositorio guía aquí 📄.

Lenguajes y herramientas:

Funciones Principales 🎯

Desarrollar una aplicación de escritorio que permita:

Objetivos:

  1. Sistema:
  2. Implementar un sistema de gestión de biblioteca en Java que permita la administración de libros, usuarios y préstamos.

  3. Uso de JUnit 5:
  4. Desarrollar pruebas unitarias con JUnit 5 para validar la funcionalidad de la capa de servicio.

  5. Uso de Mockito
  6. Utilizar Mockito para simular el comportamiento de los repositorios y asegurar pruebas unitarias efectivas.

  7. Manejo de excepciones.
  8. Implementar el manejo de excepciones en Java para capturar y gestionar errores de manera eficiente.

Beneficios del Marco de Pruebas Unitarias en Java:

  1. Mejora la calidad del código:
  2. Permite detectar errores antes de la implementación en producción.

  3. Facilita el mantenimiento:
  4. Un código con pruebas bien diseñadas es más facil de modificar y escalar.

  5. Promueve el desarrollo basado en pruebas (TDD):
  6. Ayuda a diseñar software de manera más estructurada y modular.

  7. Reduce el tiempo de depuración:
  8. La detección temprana de errores evita la acumulación de fallos.

Desacripción de Flujo del Sistema 💻

La aplicación de gestión de biblioteca permite a los usuarios registrarse, buscar libros en un catálogo organizado, y solicitar préstamos, mientras el sistema verifica la disponibilidad y registra las fechas de devolución. Los administradores pueden gestionar inventarios, añadir nuevos libros, y monitorear préstamos y devoluciones. Además, se aplican penalizaciones automáticas por retrasos y se generan estadísticas para optimizar el uso de recursos. Todo esto crea un flujo eficiente para conectar usuarios con los libros de manera organizada y automatizada.

  1. Agregar un Libro: El usuario introduce los datos de un nuevo libro en la biblioteca.
  2. Consultar un Libro: Se obtiene información detallada de un libro a partir de su ID.
  3. Registrar un Usuario: Un usuario solicita un libro, registrándose la fecha de préstamo.
  4. Consultar Préstamos por Usuario: Se obtiene el historial de préstamos realizados por un usuario.

Requerimientos Funcionales:

  1. Gestión de Libros:
    • Agregar un libro con ID, título y autor.
    • Obtener un libro mediante su ID.
  2. Gestión de Usuarios:
    • Crear un usuario con ID y nombre.
  3. Gestión de Préstamos:
    • Prestar un libro a un usuario registrando la fecha del préstamo.
    • Obtener todos los préstamos de un usuario específico.

Requerimientos de Pruebas Unitarias:

  1. Pruebas de LibraryService
    • Validar la adición de un libro.
    • Validar la recuperación de un libro por ID.
    • Validar la creación de un usuario.
    • Validar el préstamo de un libro a un usuario.
    • Validar la consulta de préstamos por usuario
  2. Uso de Mockito
    • Simular la interacción con BookRepository y LoanRepository.

Manejo de Excepciones y Errores en Java

Para grarantiar la estabilidad del sistema, se implementará el manejo de excepciones con try y catch. Algunos casos de uso incluyen:

  • Libro no encontrado: Lanzar una NoSuchElementException si el libro solicitado no existe en la base de datos.
  • Usuario no encontrado: Lanzar una IllegalArgumentException si se intenta prestar un libro a un usuario inexistente.
  • Libro ya prestado: Capturar un posible error si un libro ya ha sido prestado y evitar que se preste nuevamente sin ser devuelto.
  • Errores generales de base de datos Uso de SQLException para manejar errores de conexión o consulta a la base de datos.

Uso 🚀

Ejecutar el programa

Para ejecutar este programa es necesario tener el JDK 21 de Java. Este se puede descargar desde el sitio de Oracle

Instrucciones para configurar el proyecto localmente:

Prerequisitos:

  • IDE (IntelliJ, Eclipse, NetBeans, VSCode, etc).
  • JDK > 21 Download JDK

Instalación:

Nota: Este es un proyecto de uso estudiantil, no debe utilizarse para uso comercial.

# Clona el repositorio
git clone https://github.com/dnbsammie/Reto03.git
cd Reto03-clone

# Ejecuta el projecto
javac Main.java

java Main

Image 1 Image 2 Image 3

Fig. 1: Imágenes de ejemplo del proyecto.

Book:

public class Book {
    private final String id, title, author;
    private boolean isBorrowed;

    public Book(String id, String title, String author, boolean isBorrowed) {
        this.id = id;
        this.title = title;
        this.author = author;
        isBorrowed = false;
    }

    public String getId() {return id;}
    public String getTitle() {return title;}
    public String getAuthor() {return author;}

    public boolean isBorrowed() {
        return isBorrowed;
    }

    public void setBorrowed(boolean isBorrowed) {
        this.isBorrowed = isBorrowed;
    }
}

Contacto 📧

Integrante 1: Alejandro Ramirez
GitHub: https://github.com/Alejo12680
Integrante 2: Samuel Rivera
GitHub: https://github.com/dnbsammie

About

Sistema de Gestión de Biblioteca con Pruebas Unitarias en Java

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages