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

  1. 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.
  2. Tegevus (Act):

    • Teostatakse põhitegevus, mida on vaja testida.
    • See võib olla testitava meetodi väljakutse või kindla operatsiooni teostamine.
  3. 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.