Junior
Povedzte nám o princípe Triple A v testovaní (Arrange, Act, Assert).
sobes.tech AI
Odpoveď od AI
Princíp Triple A (Arrange,Act,Assert) pomáha štruktúrovať jednotkové testy na zvýšenie ich čitateľnosti a udržiavateľnosti. Rozdeľuje každý test na tri jasné fázy:
-
Arrange (Príprava):
-
Act (Akcia):
- Vykonáva hlavnú akciu, ktorú je potrebné otestovať.
- To môže byť volanie testovanej metódy alebo vykonanie určitej operácie.
-
Assert (Overenie):
- Kontroluje výsledok vykonanej akcie.
- Porovnáva očakávaný výsledok s aktuálnym.
- Používajú sa metódy tvrdení (assertions) z testovacieho rámca (napríklad JUnit, NUnit, pytest).
Príklad v Pythone 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čítania dvoch 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čítania dvoch 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žitia Triple A:
- Čitateľnosť: Štruktúra testu je jasnejšia, čo uľahčuje jeho čítanie a pochopenie.
- Udržiavateľnosť: Jasné rozdelenie fáz zjednodušuje vykonávanie zmien a opráv chýb v testoch.
- Zameranie: Každá fáza sa sústredí na svoju konkrétnu úlohu, čo pomáha písať cieľové testy.
- Štandardizácia: Zavedenie Triple A v tíme prispieva k jednotnosti pri písaní testov.