Junior
Povězte nám o principu Triple A v testování (Arrange, Act, Assert).
sobes.tech AI
Odpověď od AI
Princip Triple A (Arrange,Act,Assert) pomáhá strukturovat jednotkové testy ke zvýšení jejich čitelnosti a udržovatelnosti. Dělí každý test na tři jasné fáze:
-
Arrange (Příprava):
-
Act (Akce):
- Provádí hlavní akci, kterou je třeba otestovat.
- To může být volání testované metody nebo provedení určité operace.
-
Assert (Ověření):
- Kontroluje výsledek provedené akce.
- Porovnává očekávaný výsledek s aktuálním.
- Používají se metody tvrzení (assertions) z testovacího rámce (například JUnit, NUnit, pytest).
Příklad v Pythonu s použitím 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 sčítání dvou kladných čísel.
"""
# 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 sčítání dvou záporných čísel.
"""
# 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}"
Výhody použití Triple A:
- Čitelnost: Struktura testu je srozumitelnější, což usnadňuje jeho čtení a pochopení.
- Udržovatelnost: Jasné rozdělení fází usnadňuje provádění změn a oprav chyb v testech.
- Zaměření: Každá fáze se soustředí na svůj konkrétní úkol, což pomáhá psát cílenější testy.
- Standardizace: Zavedení Triple A v týmu přispívá k jednotnosti při psaní testů.