Junior
Erzählen Sie uns vom Triple-A-Prinzip im Testen (Arrange, Act, Assert).
sobes.tech KI
Antwort von AI
Das Triple A-Prinzip (Arrange,Act,Assert) hilft dabei, Unit-Tests zu strukturieren, um deren Lesbarkeit und Wartbarkeit zu verbessern. Es teilt jeden Test in drei klare Phasen:
-
Arrange (Vorbereitung):
-
Act (Aktion):
- Die Hauptaktion, die getestet werden soll, wird ausgeführt.
- Dies kann ein Aufruf der getesteten Methode oder die Ausführung einer bestimmten Operation sein.
-
Assert (Überprüfung):
- Das Ergebnis der Aktion wird überprüft.
- Das erwartete Ergebnis wird mit dem tatsächlichen verglichen.
- Es werden Assertion-Methoden aus dem Test-Framework (z.B. JUnit, NUnit, pytest) verwendet, um Bedingungen zu überprüfen.
Beispiel in Python mit pytest:
# app.py
class Calculator:
def add(self, a, b):
return a + b
# test_calculator.py
import pytest
from app import Calculator
def test_add_positive_numbers():
"""
Test der Addition zweier positiver Zahlen.
"""
# Arrange
calculator = Calculator()
num1 = 5
num2 = 3
expected_result = 8
# Act
actual_result = calculator.add(num1, num2)
# Assert
assert actual_result == expected_result, f"Expected {expected_result}, but got {actual_result}"
def test_add_negative_numbers():
"""
Test der Addition zweier negativer Zahlen.
"""
# Arrange
calculator = Calculator()
num1 = -5
num2 = -3
expected_result = -8
# Act
actual_result = calculator.add(num1, num2)
# Assert
assert actual_result == expected_result, f"Expected {expected_result}, but got {actual_result}"
Vorteile der Verwendung von Triple A:
- Lesbarkeit: Die Teststruktur wird verständlicher, was das Lesen und Verstehen erleichtert.
- Wartbarkeit: Die klare Trennung der Phasen erleichtert Änderungen und Fehlerbehebungen in den Tests.
- Fokus: Jede Phase konzentriert sich auf ihre spezifische Aufgabe, was das Schreiben zielgerichteter Tests unterstützt.
- Standardisierung: Die Einführung von Triple A im Team fördert die Einheitlichkeit beim Schreiben von Tests.