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:lu16:behant_python [2025/10/23 09:14] kmaurizimodul:m450:learningunits:lu16:behant_python [2025/10/23 09:34] (aktuell) – [Vergleich zu Unit Tests] kmaurizi
Zeile 73: Zeile 73:
 ---- ----
  
-===== Schrittdefinitionen (Step Definitions) ===== +===== Schrittdefinitionen und getestete App ===== 
-Für jeden Schritt im Feature wird eine Python-Funktion erstellt, die das Verhalten des Systems simuliert oder prüft.+<WRAP group> 
 + 
 +<WRAP half column> 
 +**Feature Steps (Testcode)**
  
 <code python> <code python>
 from behave import given, when, then from behave import given, when, then
-from app.calculator import Calculator Beispiel-App, die getestet wird+from app.calculator import Calculator zu testende App
  
 @given('ich habe {zahl:d} in die App eingegeben') @given('ich habe {zahl:d} in die App eingegeben')
 def step_input_number(context, zahl): def step_input_number(context, zahl):
-    # Zugriff auf die getestete App über den context+    # Erstellt (falls nötig) eine neue App-Instanz
     if not hasattr(context, "calc"):     if not hasattr(context, "calc"):
         context.calc = Calculator()         context.calc = Calculator()
Zeile 89: Zeile 92:
 @when('ich die Additionsfunktion ausführe') @when('ich die Additionsfunktion ausführe')
 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('sollte das Ergebnis {expected:d} auf dem Bildschirm erscheinen') @then('sollte das Ergebnis {expected:d} auf dem Bildschirm erscheinen')
 def step_verify_result(context, expected): def step_verify_result(context, expected):
 +    # Überprüft das sichtbare Resultat der App
     assert context.result == expected     assert context.result == expected
 </code> </code>
  
-**Hinweise:** +</WRAP>
-  * Das eigentliche Programm (z. B. ''Calculator'') ist **nicht Teil des Tests**, sondern **die getestete App**.   +
-  * Die Tests beschreiben **nur das Verhalten aus Benutzersicht**.   +
-  * Der ''context'' verbindet die Szenarien mit der App und speichert Daten zwischen Schritten.  +
  
-----+<WRAP half column> 
 +**App-Code (getestete Anwendung)** 
 + 
 +<code python> 
 +# app/calculator.py 
 + 
 +class Calculator: 
 +    def __init__(self): 
 +        # interner Speicher für eingegebene Zahlen 
 +        self.numbers = [] 
 + 
 +    def enter_number(self, value): 
 +        # Zahl zur Eingabeliste hinzufügen 
 +        self.numbers.append(value) 
 + 
 +    def add(self): 
 +        # Beispiel-Implementierung: summiert alle Werte 
 +        result = sum(self.numbers) 
 +        # leert Eingaben für nächsten Vorgang 
 +        self.numbers.clear() 
 +        return result 
 +</code> 
 + 
 +</WRAP> 
 +</WRAP> 
 + 
 +**Hinweise:** 
 +  * Das Modul ''calculator.py'' ist die **zu testende Applikation**, nicht Teil des Tests selbst.   
 +  * Die Datei ''calculator_steps.py'' beschreibt nur das **erwartete Verhalten**.   
 +  * Der ''context'' erlaubt den Austausch von Objekten (z. B. der App) zwischen den Schritten.   
 +  * Jeder ''Given/When/Then''-Schritt entspricht einem Teil der Benutzerinteraktion.
  
 ===== 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:innen | Fachpersonen + Entwickler:innen | | Zielgruppe | Entwickler:innen | Fachpersonen + Entwickler:innen |
-| Beispiel | `assert add(2,3)==5| „Given ich habe 2 und 3 eingegeben, When ich addiere, Then erhalte ich 5“ |+| Beispiel | ''assert add(2,3)==5'' | „Given ich habe 2 und 3 eingegeben, When ich addiere, Then erhalte ich 5“ |
  
 ---- ----
  • modul/m450/learningunits/lu16/behant_python.1761203644.txt.gz
  • Zuletzt geändert: 2025/10/23 09:14
  • von kmaurizi