modul:m450:learningunits:lu04:fixture

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m450:learningunits:lu04:fixture [2024/11/20 11:10] msutermodul:m450:learningunits:lu04:fixture [2025/03/27 09:14] (aktuell) kmaurizi
Zeile 1: Zeile 1:
 ====== LU04a - Fixture ====== ====== LU04a - Fixture ======
-<nodisp>TODO SuMa: Einfachere Beispiele</nodisp>+/*TODO SuMa: Einfachere Beispiele*/
 <WRAP center round info 60%> <WRAP center round info 60%>
 Eine //Fixture// (deutsch: Vorrichtung, Halterung) dienen zur Initialisierung von Tests. Eine //Fixture// (deutsch: Vorrichtung, Halterung) dienen zur Initialisierung von Tests.
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 ''Customer'' bereitgestellt werden. 
 + 
 +<code python> 
 +@pytest.fixture 
 +def customer_max(self): 
 +    return Customer('Max', None) 
 + 
 +@pytest.fixture 
 +def customer_moritz(self): 
 +    return Customer('Moritz', None) 
 +     
 +def test_add_customers(self, customer_max, customer_moritz): 
 +    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 
 + 
 +</code> 
 +In der Testfunktion ''test_add_customers'' werden die beiden Fixtures als Parameter angegeben. 
 +Pytest stellt selber sicher, dass die entsprechenden Fixtures ausgeführt werden. 
 + 
 +=== Testdaten aus einer Datei lesen === 
 <code python> <code python>
  
  • modul/m450/learningunits/lu04/fixture.1732097416.txt.gz
  • Zuletzt geändert: 2024/11/20 11:10
  • von msuter