Menu
Coddy logo textTech

Test e integrazione

Fa parte della sezione Programmazione orientata agli oggetti del percorso Dart di Coddy. Lezione 106 di 110.

challenge icon

Sfida

Facile

Nella lezione precedente, hai creato un’interfaccia amministratore per gestire l’inventario della biblioteca. Ora è il momento di mettere insieme tutti gli elementi creando una suite di test completa che verifichi che tutti i componenti del tuo sistema di gestione della biblioteca funzionino correttamente insieme.

Aggiungerai una classe LibraryTester che esegue test di integrazione su tutte le funzionalità della tua biblioteca, verificando che libri, utenti, amministratori, prestiti, ricerche e gestione dell’inventario funzionino come previsto quando vengono usati insieme.

  • book.dart, user.dart, admin.dart, library.dart: lascia invariate le classi esistenti.
  • library_tester.dart: crea una nuova classe LibraryTester che verifica il sistema della biblioteca. Deve avere un’istanza di Library e includere questi metodi di test:
    • setupTestData() - registra un amministratore (A001, Test Admin), aggiunge due libri tramite l’amministratore (978-0-01, Book One, Author A e 978-0-02, Book Two, Author B) e registra un utente (U001, Test User)
    • testBorrowing() - prende in prestito il primo libro per l’utente, prova a prenderlo di nuovo in prestito (l’operazione dovrebbe fallire), poi lo restituisce. Stampa Borrowing test: PASS al termine.
    • testSearch() - cerca i libri che hanno Book nel titolo, stampa Search found: X books dove X è il numero di risultati, poi stampa Search test: PASS
    • testAdminOperations() - rimuove il secondo libro usando l’amministratore, stampa il numero di libri come Books after removal: X, poi stampa Admin test: PASS
    • runAllTests() - chiama setupTestData(), poi esegue tutti e tre i metodi di test nell’ordine e infine stampa All tests completed!
  • main.dart: crea un’istanza di LibraryTester e chiama runAllTests() per eseguire l’intera suite di test.

Risultato previsto:

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!

Provalo tu

import 'library_tester.dart';

void main() {
  // TODO: Crea un'istanza di LibraryTester e chiama runAllTests()
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Dart online