Sobes.tech
Junior

Պատմեք մեզ Triple A սկզբունքի մասին թեստավորման մեջ (Arrange, Act, Assert).

sobes.tech AI

Պատասխան AI-ից

Համաձայնեցված սկզբունք Triple A (Arrange,Act,Assert) օգնում է կառուցել միավորային թեստերը ավելի ընթեռնելի և պահպանելի դարձնելու համար: Այն բաժանում է յուրաքանչյուր թեստը երեք հստակ փուլերի.

  1. Arrange (Պատրաստում):

    • Կարգավորում է թեստային միջավայրը, սկզբնավորում անհրաժեշտ օբյեկտները, ստեղծում է фикստուրներ, մոկ կամ ստաբ՝ թեստավորող բաղադրիչը մեկուսացնելու համար:
    • Նշում է մուտքային տվյալները թեստավորող ֆունկցիայի կամ մեթոդի համար:
  2. Act (Գործողություն):

    • Կատարվում է հիմնական գործողությունը, որը պետք է թեստավորվի:
    • Դա կարող է լինել թեստավորող մեթոդի կանչ կամ որոշակի օպերացիայի կատարում:
  3. Assert (Հաստատում):

    • Ստուգվում է գործողության արդյունքը:
    • Համեմատվում է սպասվող արդյունքը իրական արդյունքի հետ:
    • Օգտագործվում են թեստի շրջանակի (օրինակ, JUnit, NUnit, pytest) մեթոդներ:

Python-ով օրինակ 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():
    """
    Երկու դրական թվերի գումարի թեստ:
    """
    # Arrange
    calculator = Calculator()
    num1 = 5
    num2 = 3
    սպասվող արդյունք = 8

    # Act
    իրական արդյունք = calculator.add(num1, num2)

    # Assert
    assert իրական արդյունք == սպասվող արդյունք, f"Անկախ {սպասվող արդյունք}, բայց ստացանք {իրական արդյունք}"

def test_add_negative_numbers():
    """
    Երկու բացասական թվերի գումարի թեստ:
    """
    # Arrange
    calculator = Calculator()
    num1 = -5
    num2 = -3
    սպասվող արդյունք = -8

    # Act
    իրական արդյունք = calculator.add(num1, num2)

    # Assert
    assert իրական արդյունք == սպասվող արդյունք, f"Անկախ {սպասվող արդյունք}, բայց ստացանք {իրական արդյունք}"

Առավելություններ Triple A- ի օգտագործման:

  • Կարդալություն: Թեստի կառուցվածքը ավելի պարզ է և հեշտ է հասկանալ:
  • Պահպանելիություն: Հստակ բաժանումը հեշտացնում է փոփոխություններ և սխալների ուղղումներ:
  • Կենտրոնացում: Ամեն մի փուլ կենտրոնացած է իր կոնկրետ գործառույթի վրա:
  • Ստանդարտացում: Triple A- ի ներդրումը թիմում ապահովում է միատարրություն: