Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m450:learningunits:lu16:behant_python [2025/10/23 09:14] – kmaurizi | modul:m450:learningunits:lu16:behant_python [2025/10/23 09:34] (aktuell) – [Vergleich zu Unit Tests] kmaurizi | ||
|---|---|---|---|
| Zeile 73: | Zeile 73: | ||
| ---- | ---- | ||
| - | ===== Schrittdefinitionen | + | ===== Schrittdefinitionen |
| - | Für jeden Schritt im Feature | + | <WRAP group> |
| + | |||
| + | <WRAP half column> | ||
| + | **Feature | ||
| <code python> | <code python> | ||
| from behave import given, when, then | from behave import given, when, then | ||
| - | from app.calculator import Calculator | + | from app.calculator import Calculator |
| @given(' | @given(' | ||
| def step_input_number(context, | def step_input_number(context, | ||
| - | # Zugriff auf die getestete | + | # Erstellt (falls nötig) eine neue App-Instanz |
| if not hasattr(context, | if not hasattr(context, | ||
| context.calc = Calculator() | context.calc = Calculator() | ||
| Zeile 89: | Zeile 92: | ||
| @when(' | @when(' | ||
| def step_perform_add(context): | def step_perform_add(context): | ||
| + | # Führt die gewünschte Operation aus | ||
| context.result = context.calc.add() | context.result = context.calc.add() | ||
| @then(' | @then(' | ||
| def step_verify_result(context, | def step_verify_result(context, | ||
| + | # Überprüft das sichtbare Resultat der App | ||
| assert context.result == expected | assert context.result == expected | ||
| </ | </ | ||
| - | **Hinweise: | + | </ |
| - | * Das eigentliche Programm (z. B. '' | + | |
| - | * Die Tests beschreiben **nur das Verhalten aus Benutzersicht**. | + | |
| - | * Der '' | + | |
| - | ---- | + | <WRAP half column> |
| + | **App-Code (getestete Anwendung)** | ||
| + | |||
| + | <code python> | ||
| + | # app/ | ||
| + | |||
| + | class Calculator: | ||
| + | def __init__(self): | ||
| + | # interner Speicher für eingegebene Zahlen | ||
| + | self.numbers = [] | ||
| + | |||
| + | def enter_number(self, | ||
| + | # Zahl zur Eingabeliste hinzufügen | ||
| + | self.numbers.append(value) | ||
| + | |||
| + | def add(self): | ||
| + | # Beispiel-Implementierung: | ||
| + | result = sum(self.numbers) | ||
| + | # leert Eingaben für nächsten Vorgang | ||
| + | self.numbers.clear() | ||
| + | return result | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | **Hinweise: | ||
| + | * Das Modul '' | ||
| + | * Die Datei '' | ||
| + | * Der '' | ||
| + | * Jeder '' | ||
| ===== Tests ausführen ===== | ===== Tests ausführen ===== | ||
| Zeile 138: | Zeile 170: | ||
| | Sprache | Code (Python) | Gherkin (natürliche Sprache) | | | Sprache | Code (Python) | Gherkin (natürliche Sprache) | | ||
| | Zielgruppe | Entwickler: | | Zielgruppe | Entwickler: | ||
| - | | Beispiel | `assert add(2,3)==5` | „Given ich habe 2 und 3 eingegeben, When ich addiere, Then erhalte ich 5“ | | + | | Beispiel | '' |
| ---- | ---- | ||