Menu
Coddy logo textTech

Testen und Integration

Teil des Abschnitts Objektorientierte Programmierung der Dart-Journey von Coddy — Lektion 106 von 110.

challenge icon

Aufgabe

Einfach

In der vorherigen Lektion haben Sie eine Admin-Schnittstelle zur Verwaltung des Bibliotheksbestands erstellt. Jetzt ist es an der Zeit, alles zusammenzuführen, indem Sie eine umfassende Test-Suite erstellen, die validiert, dass alle Komponenten Ihres Bibliotheksverwaltungssystems korrekt zusammenarbeiten.

Sie werden eine LibraryTester-Klasse hinzufügen, die Integrationstests über alle Ihre Bibliotheksfunktionen hinweg ausführt – und dabei verifiziert, dass Bücher, Benutzer, Admins, Ausleihen, Suchen und die Bestandsverwaltung alle wie erwartet funktionieren, wenn sie zusammen verwendet werden.

  • book.dart, user.dart, admin.dart, library.dart: Behalten Sie Ihre bestehenden Klassen unverändert bei.
  • library_tester.dart: Erstellen Sie eine neue LibraryTester-Klasse, die Ihr Bibliothekssystem validiert. Sie sollte eine Library-Instanz besitzen und diese Testmethoden enthalten:
    • setupTestData() – registriert einen Admin (A001, Test Admin), fügt zwei Bücher über den Admin hinzu (978-0-01, Book One, Author A und 978-0-02, Book Two, Author B) und registriert einen Benutzer (U001, Test User)
    • testBorrowing() – leiht das erste Buch für den Benutzer aus, versucht es erneut auszuleihen (sollte fehlschlagen) und gibt es dann zurück. Geben Sie nach Abschluss Borrowing test: PASS aus.
    • testSearch() – sucht nach Büchern mit Book im Titel, gibt Search found: X books aus, wobei X die Anzahl ist, und gibt dann Search test: PASS aus.
    • testAdminOperations() – entfernt das zweite Buch über den Admin, gibt die Anzahl der Bücher als Books after removal: X aus und gibt dann Admin test: PASS aus.
    • runAllTests() – ruft setupTestData() auf, führt dann alle drei Testmethoden nacheinander aus und gibt schließlich All tests completed! aus.
  • main.dart: Erstellen Sie eine LibraryTester-Instanz und rufen Sie runAllTests() auf, um die vollständige Test-Suite auszuführen.

Erwartete Ausgabe:

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!

Probier es selbst

import 'library_tester.dart';

void main() {
  // TODO: Erstelle eine LibraryTester-Instanz und rufe runAllTests() auf
}

Alle Lektionen in Objektorientierte Programmierung