Sobes.tech
Junior

Testdə Triple A prinsipindən danışın (Arrange, Act, Assert).

sobes.tech Süni İntellekt

AI-dan cavab

Triple A prinsipi (Arrange,Act,Assert) birlik testlərini daha oxunaqlı və saxlanması asan etmək üçün strukturlaşdırmağa kömək edir. Hər testi üç aydın mərhələyə bölür:

  1. Arrange (Hazırlıq):

    • Bu mərhələdə test mühiti qurulur, lazım olan obyektlər başlanır, fiksürlər, mocks və ya stubs yaradılaraq test olunan komponentdən ayrılır.
    • Test olunan funksiya və ya metod üçün giriş məlumatları müəyyən edilir.
  2. Act (Hərəkət):

    • Əsas hərəkət həyata keçirilir, bu test olunan metodun çağırılması və ya müəyyən bir əməliyyatın yerinə yetirilməsi ola bilər.
  3. Assert (Təsdiqləmə):

    • Hərəkətin nəticəsi yoxlanılır.
    • Gözlənilən nəticə faktiki ilə müqayisə edilir.
    • Test çərçivəsindən (məsələn, JUnit, NUnit, pytest) istifadə edilərək şərtlər yoxlanılır.

Python ilə pytest nümunəsi:

# 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():
    """
    İki müsbət ədədin cəmini test edir.
    """
    # 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():
    """
    İki mənfi ədədin cəmini test edir.
    """
    # 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 istifadə etməyin üstünlükləri:

  • Oxunaqlıq: Testin quruluşu daha aydın olur, bu da onun oxunmasını və başa düşülməsini asanlaşdırır.
  • Davamlılıq: Aşamalar arasındakı aydın bölünmə testlərin dəyişdirilməsini və səhvlərin düzəldilməsini sadələşdirir.
  • Diqqət: Hər mərhələ öz vəzifəsinə yönəlib, daha məqsədyönlü testlər yazmağa kömək edir.
  • Standartlaşdırma: Komanda daxilində Triple A-nın tətbiqi testlərin yazılmasında vahidliyi təşviq edir.