Junior
Тестирлөөдө Triple A принцибин баяндап бериңиз (Arrange, Act, Assert).
sobes.tech AI
AIден жооп
Triple A принциби (Arrange,Act,Assert) юнит-тесттерди структуралаштырууга жардам берет, алардын окумдуулугун жана колдоосун жакшыртуу үчүн. Ал ар бир тестти үч так фазага бөлөт:
-
Arrange (Даярдоо):
- Тест чөйрөсүн орнотот, зарыл болгон объекттерди баштапкыдай кылат, фикстуралар, моки же стабы тесттелүүчү компонентти изоляциялоо үчүн.
- Тесттелүүчү функция же метод үчүн кирүү маалыматтарын аныктайт.
-
Act (Иш-аракет):
- Тесттелүүчү негизги иш-аракетти аткарат.
- Бул тесттелүүчү методду чакыруу же белгилүү бир операцияны аткаруу болушу мүмкүн.
-
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ны командада киргизүү тесттердин жазылышында бирдиктүүлүктү камсыздайт.