Menu
Coddy logo textTech

Pruebas e integración

Parte de la sección Programación Orientada a Objetos del Journey de Dart de Coddy — lección 106 de 110.

challenge icon

Desafío

Fácil

En la lección anterior, construiste una interfaz de administrador para gestionar el inventario de la biblioteca. Ahora es el momento de unir todo creando una suite de pruebas exhaustiva que valide que todos los componentes de tu Sistema de Gestión de Biblioteca funcionen correctamente en conjunto.

Añadirás una clase LibraryTester que ejecute pruebas de integración en todas las funciones de tu biblioteca, verificando que los libros, usuarios, administradores, préstamos, búsquedas y la gestión del inventario funcionen como se espera cuando se usan juntos.

  • book.dart, user.dart, admin.dart, library.dart: Mantén tus clases existentes sin cambios.
  • library_tester.dart: Crea una nueva clase LibraryTester que valide tu sistema de biblioteca. Debe tener una instancia de Library e incluir estos métodos de prueba:
    • setupTestData() - registra un administrador (A001, Test Admin), añade dos libros a través del administrador (978-0-01, Book One, Author A y 978-0-02, Book Two, Author B), y registra un usuario (U001, Test User)
    • testBorrowing() - presta el primer libro al usuario, intenta prestarlo de nuevo (debe fallar), luego lo devuelve. Imprime Borrowing test: PASS al finalizar.
    • testSearch() - busca libros con Book en el título, imprime Search found: X books donde X es el recuento, luego imprime Search test: PASS
    • testAdminOperations() - elimina el segundo libro usando al administrador, imprime el recuento de libros como Books after removal: X, luego imprime Admin test: PASS
    • runAllTests() - llama a setupTestData(), luego ejecuta los tres métodos de prueba en orden, y finalmente imprime All tests completed!
  • main.dart: Crea una instancia de LibraryTester y llama a runAllTests() para ejecutar la suite de pruebas completa.

Salida esperada:

A001 added "Book One"
A001 added "Book Two"
U001 borrowed "Book One"
Book not available
U001 returned "Book One"
Borrowing test: PASS
Search found: 2 books
Search test: PASS
A001 removed "Book Two"
Books after removal: 1
Admin test: PASS
All tests completed!

Pruébalo tú mismo

import 'library_tester.dart';

void main() {
  // TODO: Crea una instancia de LibraryTester y llama a runAllTests()
}

Todas las lecciones de Programación Orientada a Objetos