Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m450:learningunits:lu04:fixture [2024/03/28 14:07] – angelegt - Externe Bearbeitung 127.0.0.1 | modul:m450:learningunits:lu04:fixture [2025/03/27 09:14] (aktuell) – kmaurizi | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== LU04a - Fixture ====== | ====== LU04a - Fixture ====== | ||
| - | < | + | /*TODO SuMa: Einfachere Beispiele*/ |
| <WRAP center round info 60%> | <WRAP center round info 60%> | ||
| Eine //Fixture// (deutsch: Vorrichtung, | Eine //Fixture// (deutsch: Vorrichtung, | ||
| Zeile 44: | Zeile 44: | ||
| Dadurch können wir zum Beispiel Situationen erzeugen, die beim normalen Ablauf des Programms nicht auftreten können oder sollten. | Dadurch können wir zum Beispiel Situationen erzeugen, die beim normalen Ablauf des Programms nicht auftreten können oder sollten. | ||
| - | ==== Eigene Fixtures definieren ==== | + | ===== Eigene Fixtures definieren |
| Neben den von PyTest vorgegebenen Fixtures, können wir auch eigene Funktionen schreiben und als Fixtures nutzen. | Neben den von PyTest vorgegebenen Fixtures, können wir auch eigene Funktionen schreiben und als Fixtures nutzen. | ||
| Ein typischer Einsatz solcher Funktionen ist das Bereitstellen von Objekten und Daten für die Tests. | Ein typischer Einsatz solcher Funktionen ist das Bereitstellen von Objekten und Daten für die Tests. | ||
| Dadurch stellen wir beliebig vielen Testfunktionen eine einheitliche Datenbasis bereit. | Dadurch stellen wir beliebig vielen Testfunktionen eine einheitliche Datenbasis bereit. | ||
| - | === Beispiel | + | ==== Beispiele |
| + | === Objekte bereitstellen === | ||
| + | Für die Tests in einer Applikation sollen zwei Objekte der Klasse '' | ||
| + | |||
| + | <code python> | ||
| + | @pytest.fixture | ||
| + | def customer_max(self): | ||
| + | return Customer(' | ||
| + | |||
| + | @pytest.fixture | ||
| + | def customer_moritz(self): | ||
| + | return Customer(' | ||
| + | |||
| + | def test_add_customers(self, | ||
| + | library = Library() | ||
| + | library.add_customer(customer_max) | ||
| + | library.add_customer(customer_moritz) | ||
| + | assert len(library.customers) == 2 # Checks the number of entries in the list | ||
| + | |||
| + | </ | ||
| + | In der Testfunktion '' | ||
| + | Pytest stellt selber sicher, dass die entsprechenden Fixtures ausgeführt werden. | ||
| + | |||
| + | === Testdaten aus einer Datei lesen === | ||
| <code python> | <code python> | ||