Junior
Opowiedz o zasadzie Triple A w testowaniu (Arrange, Act, Assert).
sobes.tech AI
Odpowiedź od AI
Zasada Triple A (Arrange,Act,Assert) pomaga w strukturyzacji testów jednostkowych w celu poprawy ich czytelności i utrzymania. Dzieli każdy test na trzy wyraźne fazy:
-
Arrange (Przygotowanie):
-
Act (Działanie):
- Wykonuje się główne działanie, które ma zostać przetestowane.
- Może to być wywołanie testowanej metody lub wykonanie określonej operacji.
-
Assert (Asercja):
- Sprawdza się wynik działania.
- Porównuje się oczekiwany wynik z faktycznym.
- Używa się metod asercji z frameworka testowego (np. JUnit, NUnit, pytest) do sprawdzania warunków.
Przykład w Pythonie z użyciem pytest:
# 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():
"""
Test dodawania dwóch liczb dodatnich.
"""
# 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():
"""
Test dodawania dwóch liczb ujemnych.
"""
# 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}"
Zalety stosowania Triple A:
- Czytelność: Struktura testu staje się bardziej zrozumiała, co ułatwia jego czytanie i rozumienie.
- Utrzymanie: Jasne rozdzielenie faz upraszcza wprowadzanie zmian i naprawę błędów w testach.
- Skupienie: Każda faza koncentruje się na swoim konkretnym zadaniu, co pomaga pisać bardziej ukierunkowane testy.
- Standaryzacja: Wprowadzenie Triple A w zespole sprzyja jednolitości w pisaniu testów.