Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m450:learningunits:lu04:fixture [2024/11/20 11:10] – msuter | 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> | ||