Sobes.tech
Junior

Ispričajte nam o principu Triple A u testiranju (Arrange, Act, Assert).

sobes.tech АИ

Одговор од АИ

Принцип Triple A (Arrange,Act,Assert) pomaže strukturirati jedinične testove za poboljšanje njihove čitljivosti i održivosti. On deli svaki test na tri jasne faze:

  1. Arrange (Priprema):

    • Podešava testno okruženje, inicijalizuje potrebne objekte, kreira fiksure, moke ili stube za izolaciju testiranog komponenta.
    • Određuje ulazne podatke za testiranu funkciju ili metodu.
  2. Act (Akcija):

    • Izvršava glavnu akciju koja treba biti testirana.
    • To može biti poziv testirane metode ili izvršenje određene operacije.
  3. Assert (Provera):

    • Proverava rezultat izvršene akcije.
    • Upoređuje očekivani rezultat sa stvarnim.
    • Koriste se metode tvrđenja (assertions) iz test okvira (na primer JUnit, NUnit, pytest).

Primer u Pythonu sa korišćenjem 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 sabiranja dva pozitivna broja.
    """
    # 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 sabiranja dva negativna broja.
    """
    # 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}"

Prednosti korišćenja Triple A:

  • Čitljivost: Struktura testa postaje jasnija, što olakšava njegovo čitanje i razumevanje.
  • Održavanje: Jasno razdvajanje faza olakšava pravljenje promena i ispravki grešaka u testovima.
  • Fokus: Svaka faza se fokusira na svoj konkretan zadatak, što pomaže u pisanju ciljnih testova.
  • Standardizacija: Uvođenje Triple A u tim doprinosi jedinstvu u pisanju testova.