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:
-
Arrange (Hazırlık):
-
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.
-
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.