Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| modul:archiv:m320:learningunits:lu90:aufgaben:lu4-aufgabe_5 [2026/08/30 14:06] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | modul:archiv:m320:learningunits:lu90:aufgaben:lu4-aufgabe_5 [2026/08/30 14:06] (aktuell) – ↷ Seite von modul:m320:learningunits:lu90:aufgaben:lu4-aufgabe_5 nach modul:archiv:m320:learningunits:lu90:aufgaben:lu4-aufgabe_5 verschoben msuter | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ==== Aufgabe 5 - Unit Tests mit Exceptions ==== | ||
| + | === Ziel === | ||
| + | * Sie können Testklassen auf der Basis von '' | ||
| + | |||
| + | === Hinweis === | ||
| + | * Unit-Tests werden häufig mit agilen Programmierverfahren verwendet, speziell der testgetrieben Programmierung TDD. | ||
| + | * Dabei werden zuerst die Testfälle (Black-Box) festgelegt und dann der dazu nötige Testcode erstellt. | ||
| + | * Erst dann wird die eigentliche Klasse erstellt und laufende gegen die Testklasse geprüft. | ||
| + | * Der Code wird solange angepasst, bis alle Tests fehlerfrei absolviert werden (s.a. Theorie, Kapitel **Unit Testing**). | ||
| + | * Wir verwenden hier den Unit-Test in Bezug auf schon bestehende Klassen. | ||
| + | |||
| + | === Auftrag === | ||
| + | 1. Vorbereiten der Testdatei '' | ||
| + | * Erstellen Sie – wenn nicht schon erfolgt – ein Projekt für '' | ||
| + | * Fügen Sie dem Unit Test eine Funktion '' | ||
| + | * Versehen Sie die Funktion mit der Annotation '' | ||
| + | |||
| + | 2. Testen der Methode '' | ||
| + | * Wir prüfen, ob der gelieferte Wert der Grösse der Liste entspricht. | ||
| + | * Fügen Sie die Methode '' | ||
| + | * Die Methode verwendet das '' | ||
| + | * Prüfen Sie mit '' | ||
| + | * Führen Sie den Unit Test aus. Das Ergebnis des Tests wird im linken Teil des Programmfensters angezeigt. | ||
| + | * Wenn Sie alles richtig gemacht haben, finden Sie einen orangen Balken und im unteren Bereich des Fensters einen Hinweis auf den Fehler. | ||
| + | * Ersetzen Sie nun die Zahl durch den konstanten Wert 5. | ||
| + | * Speichern Sie die Klasse und führen Sie den Test erneut aus. | ||
| + | * Nun muss als Ergebnis ein grüner Balken angezeigt werden. | ||
| + | |||
| + | 3. Test der Methode '' | ||
| + | * Wir prüfen, ob die Methode sich in verschiedenen Situationen korrekt verhält. | ||
| + | * Zu Beginn muss die Grösse 0 sein, nach dem Zufügen eines Elements muss der Wert 1 sein und nach zufügen von mehr als 5 Elemente muss der Wert 5 sein. | ||
| + | * Es sind hier 3 Testmethoden nötig, um alle diese Fälle sicherzustellen. | ||
| + | * Erstellen Sie die 3 Methoden '' | ||
| + | * Beachten Sie, dass die Methode '' | ||
| + | * Dies können Sie entweder mit '' | ||
| + | * Lesen Sie kurz nach -> [[https:// | ||
| + | * Führen Sie nun den Test durch und prüfen Sie das Ergebnis. | ||
| + | |||
| + | 4. Testen der Methode '' | ||
| + | * Wir prüfen eine Methode, die im Fehlerfall eine Exception wirft. Pytest kann auch dieses Verhalten prüfen. | ||
| + | * Erstellen Sie 2 Methoden '' | ||
| + | * Bei '' | ||
| + | * Führen Sie nun den Test durch und prüfen Sie das Ergebnis. | ||
| + | |||
| + | 5. Test der Methode '' | ||
| + | * Codieren Sie für die folgenden Testfälle Ihre eigenen Test-Methoden. | ||
| + | |||
| + | ^ # ^ Eingabewert ^ Testwert ^ Erwartetes Ergebnis | ||
| + | | 1 | -1 | - | IndexError wird geworfen | | ||
| + | | 2 | 0 | 5.0f | 5.0f | | ||
| + | | 3 | 5 | - | IndexError wird geworfen | | ||
| + | |||
| + | === Abgabe === | ||
| + | Geben Sie Ihren Code via Moodle ab. | ||