Junior
Rääkige meile Triple A põhimõttest testimises (Arrange, Act, Assert).
sobes.tech AI
Vastus AI-lt
Triple A põhimõte (Korralda,Teosta,Võrdlus) aitab struktureerida ühiku teste, et parandada nende loetavust ja hooldatavust. See jagab iga testi kolme selgesse faasi:
-
Korraldamine (Arrange):
- Selles faasis seadistatakse testikeskkond, initsialiseeritakse vajalikud objektid, luuakse [fikstuurid](https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%D0%BA%D1%81%D1%82%D1%83%D1%80%D0%B0_(%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_), mookid või stabad, et isolerida testitav komponent.
- Määratletakse sisendandmed testitavale funktsioonile või meetodile.
-
Tegevus (Act):
- Teostatakse põhitegevus, mida on vaja testida.
- See võib olla testitava meetodi väljakutse või kindla operatsiooni teostamine.
-
Põhjus (Assert):
- Kontrollitakse tegevuse tulemust.
- Võrreldakse oodatud tulemust tegeliku tulemustega.
- Kasutatakse testiraamistiku (näiteks, JUnit, NUnit, pytest) tingimuste kontrollimiseks.
Näide Pythonis kasutades 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():
"""
Positiivsete arvude liitmise test.
"""
# Korraldamine
calculator = Calculator()
num1 = 5
num2 = 3
oodatud_tulemus = 8
# Tegevus
tegelik_tulemus = calculator.add(num1, num2)
# Põhjus
assert tegelik_tulemus == oodatud_tulemus, f"Oodatud {oodatud_tulemus}, aga saadi {tegelik_tulemus}"
def test_add_negative_numbers():
"""
Negatiivsete arvude liitmise test.
"""
# Korraldamine
calculator = Calculator()
num1 = -5
num2 = -3
oodatud_tulemus = -8
# Tegevus
tegelik_tulemus = calculator.add(num1, num2)
# Põhjus
assert tegelik_tulemus == oodatud_tulemus, f"Oodatud {oodatud_tulemus}, aga saadi {tegelik_tulemus}"
Triple A eelised:
- Lugemise lihtsustamine: Testi struktuur muutub arusaadavamaks, mis hõlbustab selle lugemist ja mõistmist.
- Hooldatavus: Selge faaside jaotus lihtsustab muudatuste tegemist ja vigade parandamist testides.
- Fookus: Iga faas keskendub oma konkreetsele ülesandele, aidates kirjutada sihipärasemaid teste.
- Standardiseerimine: Triple A kasutuselevõtt meeskonnas soodustab ühtset lähenemist testide kirjutamisel.