Menu
Coddy logo textTech

Tests und Integration

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

challenge icon

Aufgabe

Einfach

In der vorherigen Lektion hast du eine Administrationsoberfläche zur Verwaltung des Bibliotheksbestands erstellt. Nun ist es an der Zeit, alles zusammenzuführen, indem du eine umfassende Testsuite erstellst, die überprüft, ob alle Komponenten deines Bibliotheksverwaltungssystems korrekt zusammenarbeiten.

Du wirst eine LibraryTester-Klasse hinzufügen, die Integrationstests für alle Funktionen deiner Bibliothek ausführt – und überprüft, ob Bücher, Benutzer, Administratoren, Ausleihen, Suchen und Bestandsverwaltung bei gemeinsamer Nutzung wie erwartet funktionieren.

  • book.dart, user.dart, admin.dart, library.dart: Belasse deine vorhandenen Klassen unverändert.
  • library_tester.dart: Erstelle eine neue LibraryTester-Klasse, die dein Bibliothekssystem überprüft. Sie sollte eine Library-Instanz enthalten und die folgenden Testmethoden umfassen:
    • setupTestData() – registriert einen Administrator (A001, Test Admin), fügt über den Administrator zwei Bücher 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 anschließend zurück. Gib 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 anschließend Search test: PASS aus
    • testAdminOperations() – entfernt das zweite Buch mithilfe des Administrators, gibt die Anzahl der Bücher als Books after removal: X aus und gibt anschließend Admin test: PASS aus
    • runAllTests() – ruft setupTestData() auf, führt anschließend alle drei Testmethoden in dieser Reihenfolge aus und gibt schließlich All tests completed! aus
  • main.dart: Erstelle eine LibraryTester-Instanz und rufe runAllTests() auf, um die vollständige Testsuite 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

Übe selbstständig: Online-Dart-Compiler