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ны командада киргизүү тесттердин жазылышында бирдиктүүлүктү камсыздайт.