====== LU04.A01 - Library ====== Erstelle die vollständigen Unittests für die Library-Applikation. Wende dabei alles aus den Learning Units 03 und 04 an. **[[https://classroom.github.com/a/vYWuIjFp|GitHub Classroom Assignment]]** ===== Auftrag 1 ===== Die Library-Applikation enthält mehrere Klassen und zu jeder Klasse ein entsprechendes Testmodul. Das jeweilige Testmodul soll jede Funktion überprüfen. Dabei sollen nicht nur der korrekte Ablauf, sondern auch Fehler und Exceptions erzeugt werden. Viele Testfunktionen setzen voraus, dass bestimmte Objekte existieren. Erstelle diese Objekte in ''fixture''s und nicht innerhalb der Testfunktion. Objekte die innerhalb der Testfunktion erstellt werden, sind **fett** markiert. ==== book.py / test_book ==== Erstelle für jede der folgenden Situationen eine Test-Funktion: * Konstruktor * Erzeuge ein **Book-Objekt** mit gültigem Titel und ISBN. * Erzeuge ein **Book-Objekt** mit einem oder keinem Wert. * Ausgabe * Prüfe die korrekte Ausgabe eines ''Buchs''. * Location * Prüfe, dass das Attribut "location" bei einem neuen ''Buch'' leer ist. * Erzeuge ein **Book-Objekt** mit Titel, ISBN und Location. Prüfe, ob das Attribut "location" im Book-Objekt leer ist. ==== library.py / test_library ==== * Konstruktor * Erzeuge ein **Library-Objekt** und prüfe ob zwei leere Listen für Bücher und Kunden vorhanden sind. * Kunden * Füge zwei ''Kunden'' zur ''Bibliothek'' hinzu. Sind beide Kunden in der Liste vorhanden? * Suche nach einem vorhandenen Kunden in der ''Bibliothek''. * Suche einen nicht vorhandenen Kunden in der ''Bibliothek''. * Lasse die Kundenliste der ''Bibliothek'' ausgeben. * Bücher * Füge drei Bücher zur ''Bibliothek'' hinzu. * Suche ein vorhandenes Buch in der ''Bibliothek''. * Suche ein unbekanntes Buch in der ''Bibliothek''. * Entferne ein existierendes ''Buch'' aus der ''Bibliothek''. * Entferne ein unbekanntes Buch aus der ''Bibliothek''. * Nimm ein Buch an einer bekannten Position aus der ''Bibliothek''. * Nimm ein Buch an einer unbekannten Position aus der ''Bibliothek''. * Stelle ein ''Buch'' mit einer korrekten Position zurück. * Stelle ein ''Buch'' mit einer unbekannten Position zurück. * Lasse eine Bücherliste der ''Bibliothek'' anzeigen. ===== Auftrag 2 ===== Hast du erkannt, nach welchem System die Testfunktionen definiert werden? Versuche nun selber Testfunktionen für die Klassen ''Customer'' und ''Librarian'' zu definieren und umzusetzen. ===== Schritt 3 ===== Zuletzt soll die Funktion ''main'' in ''main.py'' getestet werden. ---- {{tag>M450-LU04}} [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Marcel Suter