Sobes.tech
Junior

Testlerde Triple A prensibi hakkında bilgi verin (Arrange, Act, Assert).

sobes.tech yapay zeka

AI'dan gelen yanıt

Triple A ilkesi (Arrange,Act,Assert) birim testlerini daha okunabilir ve sürdürülebilir hale getirmek için yapılandırmaya yardımcı olur. Her testi üç net aşamaya böler:

  1. Arrange (Hazırlık):

    • Bu aşamada test ortamı kurulur, gerekli nesneler başlatılır, fiksürler, mocks veya stubs izole edilerek test edilen bileşenle bağlantısı kesilir.
    • Test edilen fonksiyon veya metod için giriş verileri belirlenir.
  2. Act (Eylem):

    • Test edilmek istenen ana eylem gerçekleştirilir.
    • Bu, test edilen metodun çağrılması veya belirli bir işlemin yapılması olabilir.
  3. Assert (Doğrulama):

    • Eylemin sonucu kontrol edilir.
    • Beklenen sonuç ile gerçek sonuç karşılaştırılır.
    • Koşulları doğrulamak için test çerçevesi (örneğin, JUnit, NUnit, pytest) kullanılır.

Python ile pytest kullanımı örneği:

# 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 pozitif sayının toplamını test eder.
    """
    # 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 negatif sayının toplamını test eder.
    """
    # 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 kullanmanın avantajları:

  • Okunabilirlik: Testin yapısı daha anlaşılır hale gelir, böylece okunması ve anlaşılması kolaylaşır.
  • Bakım Kolaylığı: Farklı aşamaların net ayrımı, testlerde değişiklik yapmayı ve hataları düzeltmeyi kolaylaştırır.
  • Odaklanma: Her aşama kendi belirli görevine odaklanır, böylece daha hedefli testler yazmaya yardımcı olur.
  • Standartlaştırma: Takım içinde Triple A'nın kullanılması, testlerin tutarlı şekilde yazılmasını teşvik eder.