Sobes.tech
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:

  1. 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.
  2. Act (Harakat):

    • Asosiy harakat bajariladi, bu test qilinadigan metod chaqirilishi yoki ma'lum bir operatsiya bajarilishi mumkin.
  3. 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.