Sobes.tech
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:

  1. Arrange (Príprava):

    • Nastavuje testovacie prostredie, inicializuje potrebné objekty, vytvára fiksúry, mocks alebo stubs na izoláciu testovaného komponentu.
    • Určuje vstupné údaje pre testovanú funkciu alebo metódu.
  2. Act (Akcia):

    • Vykonáva hlavnú akciu, ktorú je potrebné otestovať.
    • To môže byť volanie testovanej metódy alebo vykonanie určitej operácie.
  3. 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.