Junior
Testda Triple A tamoyili haqida gapiring (Arrange, Act, Assert).
sobes.tech AI
AIdan javob
Triple A prinsipi (Arrange,Act,Assert) birlik testlarini oson va tushunarli qilish uchun tuzilgan. Har bir testni uchta aniq bosqichga bo'linadi:
-
Arrange (Tayyorlash):
- Bu bosqichda test muhitini sozlash, zarur bo'lgan obyektlarni boshlash, fiksturlar, mocks yoki stubs yaratish orqali test qilinayotgan komponentdan ajratib olinadi.
- Test qilinayotgan funksiyaga yoki metodga kirish ma'lumotlari aniqlanadi.
-
Act (Harakat):
- Asosiy harakat bajariladi, bu test qilinadigan metod chaqirilishi yoki ma'lum bir operatsiya bajarilishi mumkin.
-
Assert (Tasdiqlash):
- Harakat natijasi tekshiriladi.
- Kutilgan natija haqiqiy natija bilan solishtiriladi.
- Test framework (masalan, JUnit, NUnit, pytest) yordamida shartlar tekshiriladi.
Python bilan pytest misoli:
# 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():
"""
Ijobiy ikkita sonni qo'shish test.
"""
# 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():
"""
Manfiy ikkita sonni qo'shish test.
"""
# 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 ni qo'llashning afzalliklari:
- O'qilishi: Testning tuzilishi yanada tushunarli bo'ladi, bu esa uni o'qishni va tushunishni osonlashtiradi.
- Qo'llab-quvvatlash: Aniq faza bo'linishi testlarni o'zgartirish va xatolarni tuzatishni soddalashtiradi.
- Diqqat: Har bir faza o'z vazifasiga qaratilgan bo'lib, aniqroq testlar yozishga yordam beradi.
- Standartlashtirish: Jamoada Triple A ni joriy etish testlarni yozishda birxillashtirishni ta'minlaydi.