- 1 Abschnitt
- 9 Lektionen
- Um den Kurs in deinem Profil zu hinterlegen klicke oben auf Starten
Erstellung von Modultests
Einrichten der Testumgebung
Bevor Sie mit dem Schreiben von Modultests beginnen, müssen Sie die Testumgebung einrichten. Dies umfasst die Installation der erforderlichen Testframeworks und Tools.
Beispiel für Python mit pytest:
Installieren von pytest:
pip install pytest
2. Erstellen der Verzeichnisstruktur:
my_project/
├── my_module.py
└── tests/
└── test_my_module.py
Schreiben erster einfacher Testfälle
Beginnen Sie mit einfachen Testfällen, um die grundlegende Funktionalität zu überprüfen. Ein Testfall sollte eine spezifische Funktionalität testen und klare, verständliche Assertions enthalten.
Beispiel für eine einfache Additionsfunktion in Python:
Code in my_module.py:
# Funktion zur Addition von zwei Zahlen
def add(a, b):
return a + b
Erster Testfall in tests/test_my_module.py:
import pytest
from my_module import add
# Testmethode für die Addition von zwei Zahlen
def test_add():
# Überprüfen, ob die Addition korrekt ist
assert add(2, 3) == 5
assert add(-1, 1) == 0
assert add(0, 0) == 0
if __name__ == "__main__":
pytest.main()
Nutzung von Mocking-Bibliotheken zur Simulation von Abhängigkeiten
Mocking ermöglicht es Ihnen, Abhängigkeiten zu simulieren, um einzelne Komponenten isoliert zu testen. Dies ist besonders nützlich, wenn die zu testende Komponente von anderen Systemen oder Diensten abhängig ist.
Beispiel für das Mocken einer Datenbankverbindung in Python:
Code in my_module.py:
# Funktion, die Daten aus einer Datenbank abruft
def fetch_data_from_db(db, query):
result = db.execute(query)
return result
Testfall mit Mocking in tests/test_my_module.py:
import pytest
from my_module import fetch_data_from_db
from unittest.mock import Mock
# Testmethode für das Abrufen von Daten aus einer Datenbank
def test_fetch_data_from_db():
# Mocking der Datenbankverbindung
mock_db = Mock()
mock_db.execute.return_value = "Mocked Result"
query = "SELECT * FROM table"
result = fetch_data_from_db(mock_db, query)
# Überprüfen, ob die Mock-Datenbankverbindung wie erwartet verwendet wurde
mock_db.execute.assert_called_once_with(query)
assert result == "Mocked Result"
if __name__ == "__main__":
pytest.main()
Beispiele und Muster
Testen von Grenz- und Sonderfällen:
Stellen Sie sicher, dass Ihre Tests auch Grenz- und Sonderfälle abdecken, um die Robustheit Ihrer Funktionalität zu überprüfen.
Beispiel für eine Funktion zur Berechnung des Faktorials in Python:
Code in my_module.py:
# Funktion zur Berechnung des Faktorials einer Zahl
def factorial(n):
if n < 0:
raise ValueError("Negative input not allowed")
if n == 0:
return 1
result = 1
for i in range(1, n + 1):
result *= i
return result
Testfälle für Grenz- und Sonderfälle in tests/test_my_module.py:
import pytest
from my_module import factorial
# Testmethode für das Faktorial
def test_factorial():
# Test für normale Eingabewerte
assert factorial(5) == 120
assert factorial(3) == 6
# Test für Grenzwerte
assert factorial(0) == 1
# Test für Sonderfälle (negative Eingaben)
with pytest.raises(ValueError):
factorial(-1)
if __name__ == "__main__":
pytest.main()
