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:
-
Arrange (Paruošimas):
-
Act (Veiksmas):
- Atlieka pagrindinį veiksmą, kurį reikia ištestuoti.
- Tai gali būti testuojamos metodo iškvietimas arba tam tikros operacijos vykdymas.
-
Assert (Patvirtinimas):
- Patikrina veiksmų rezultatą.
- Palygina tikėtiną rezultatą su faktiniu.
- Naudojamos testavimo karkaso (pvz., JUnit, NUnit, pytest) patvirtinimo metodus.
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.