Sobes.tech
Junior

Дар бораи принсипи Triple A дар санҷишҳо гӯед (Arrange, Act, Assert).

sobes.tech AI

Ҷавоб аз AI

Принципи Triple A (Arrange,Act,Assert) кӯмак мекунад, ки одит тестҳо барои беҳтар кардани хонданӣ ва нигоҳдории онҳо. Он ҳар як тестро ба се марҳилаи равшан тақсим мекунад:

  1. Arrange (Тайёрӣ):

    • Муҳити тестро танзим мекунад, объектҳоро оғоз мекунад, фикстура, моки ё стаби барои ҷудо кардани компоненте, ки санҷида мешавад.
    • Воридоти маълумотҳоро барои функсия ё усули санҷидашаванда муайян мекунад.
  2. Act (Ҳаракат):

    • Ҳаракати асосиро иҷро мекунад, ки бояд санҷида шавад.
    • Ин метавонад даъвати усули санҷидашаванда ё иҷрои амали муайян бошад.
  3. Assert (Тасдиқ):

    • Натиҷаи амали санҷидашударо санҷида мешавад.
    • Натиҷаи интизориро бо натиҷаи воқеӣ муқоиса мекунад.
    • Методи тасдиқ (assertions) аз рамзи тест (масалан, 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
    expected_result = 8

    # Act
    actual_result = calculator.add(num1, num2)

    # Assert
    assert actual_result == expected_result, f"Expected {expected_result}, but got {actual_result}"

def test_add_negative_numbers():
    """
    Тести ҷамъ кардани ду адади манфӣ.
    """
    # Arrange
    calculator = Calculator()
    num1 = -5
    num2 = -3
    expected_result = -8

    # Act
    actual_result = calculator.add(num1, num2)

    # Assert
    assert actual_result == expected_result, f"Expected {expected_result}, but got {actual_result}"

Афзалиятҳои истифодаи Triple A:

  • Хонданӣ: Сохтор кардани тест ба назар содда ва фаҳмо мешавад, ки хондан ва фаҳмидани онро осон мекунад.
  • Дастгирӣ: Фазаҳоро равшан ҷудо кардан, тағирот ва ислоҳоти хатогиҳоро осон мекунад.
  • Масофа: Ҳар як фаза ба вазифаи худ тамаркуз мекунад, ки кӯмак мекунад, ки тестҳои бештар ҳадафнок нависанд.
  • Стандартикунонии: Внедр кардани Triple A дар гурӯҳ ба якхелаии навишти тестҳо мусоидат мекунад.