Sobes.tech
Junior

Meséljen a Triple A elvről a tesztelésben (Arrange, Act, Assert).

sobes.tech MI

Válasz az MI-től

A Triple A elve (Arrange,Act,Assert) segít strukturálni az egységteszteket az olvashatóság és karbantarthatóság növelése érdekében. Minden tesztet három világos fázisra oszt:

  1. Arrange (Előkészítés):

    • Beállítja a tesztkörnyezetet, inicializálja a szükséges objektumokat, létrehozza a [fixture]-eket, [mock]-okat vagy [stub]-okat a tesztelt komponens izolálásához.
    • Meghatározza a bemeneti adatokat a tesztelt függvényhez vagy metódushoz.
  2. Act (Cselekvés):

    • A fő művelet végrehajtása, amit tesztelni kell.
    • Ez lehet a tesztelt metódus hívása vagy egy adott művelet végrehajtása.
  3. Assert (Ellenőrzés):

    • Az eredmény ellenőrzése.
    • Az elvárt eredmény összehasonlítása a tényleges eredménnyel.
    • A [teszt keretrendszer]-ből származó állítási módszerek (assertions) használata, például JUnit, NUnit, pytest.

Példa Pythonban a pytest használatával:

# 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():
    """
    Két pozitív szám összeadásának tesztje.
    """
    # 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():
    """
    Két negatív szám összeadásának tesztje.
    """
    # 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}"

A Triple A használatának előnyei:

  • Olvashatóság: A teszt szerkezete könnyebben érthető, ami megkönnyíti az olvasását és megértését.
  • Karban tarthatóság: A világos fázisokra bontás egyszerűsíti a változtatásokat és a hibák javítását a tesztekben.
  • Fókusz: Minden fázis a saját feladatára koncentrál, ami segít célzottabb tesztek írásában.
  • Szabványosítás: A Triple A bevezetése a csapatban egységességet eredményez a tesztek írásában.