Sobes.tech
Junior

Papaskinkite apie Triple A principą testavime (Arrange, Act, Assert).

sobes.tech AI

Atsakymas iš AI

Triple A principas (Arrange,Act,Assert) padeda struktūruoti vienetinius testus jų skaitomumo ir palaikymo gerinimui. Jis skirsto kiekvieną testą į tris aiškias fazes:

  1. Arrange (Paruošimas):

    • Nustato testavimo aplinką, inicializuoja reikalingus objektus, sukuria fiksuotes, mokus arba stubus testuojamam komponentui.
    • Nustato įvesties duomenis testuojamai funkcijai ar metodui.
  2. Act (Veiksmas):

    • Atlieka pagrindinį veiksmą, kurį reikia ištestuoti.
    • Tai gali būti testuojamos metodo iškvietimas arba tam tikros operacijos vykdymas.
  3. Assert (Patvirtinimas):

Pavyzdys Python kalba naudojant 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():
    """
    Dviejų teigiamų skaičių sudėtis.
    """
    # Arrange
    calculator = Calculator()
    num1 = 5
    num2 = 3
    tikėtinas rezultatas = 8

    # Act
    faktinis rezultatas = calculator.add(num1, num2)

    # Assert
    assert faktinis rezultatas == tikėtinas rezultatas, f"Laukta {tikėtinas rezultatas}, gauta {faktinis rezultatas}"

def test_add_negative_numbers():
    """
    Dviejų neigiamų skaičių sudėtis.
    """
    # Arrange
    calculator = Calculator()
    num1 = -5
    num2 = -3
    tikėtinas rezultatas = -8

    # Act
    faktinis rezultatas = calculator.add(num1, num2)

    # Assert
    assert faktinis rezultatas == tikėtinas rezultatas, f"Laukta {tikėtinas rezultatas}, gauta {faktinis rezultatas}"

Triple A privalumai:

  • Skaitomumas: Testo struktūra tampa aiškesnė, tai palengvina jo skaitymą ir supratimą.
  • Palaikymas: Aiškus fazių padalijimas palengvina pakeitimus ir klaidų taisymą.
  • Dėmesys: Kiekviena fazė susikoncentruoja į savo konkretų uždavinį, kas padeda rašyti tikslingesnius testus.
  • Standartizacija: Triple A diegimas komandoje užtikrina vienodumą rašant testus.