Sobes.tech
Junior

Pastāstiet mums par Triple A principu testēšanā (Arrange, Act, Assert).

sobes.tech AI

Atbilde no AI

Triple A princips (Sakārto,Darbība,Pārbaude) palīdz strukturēt vienības testus, lai uzlabotu to lasāmību un uzturēšanu. Tas sadala katru testu trīs skaidrās fāzēs:

  1. Sakārtošana (Arrange):

    • Šajā fāzē tiek iestatīta testa vide, inicializēti nepieciešamie objekti, izveidotas [fiksūras](https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%D0%BA%D1%81%D1%82%D1%83%D1%80%D0%B0_(%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%), moki vai stabi, lai izolētu testējamo komponentu.
    • Nosaka ievades datus testējamai funkcijai vai metodei.
  2. Darbība (Act):

    • Veic galveno darbību, kuru nepieciešams testēt.
    • Tas var būt testētās metodes izsaukšana vai noteiktas operācijas veikšana.
  3. Pārbaude (Assert):

    • Pārbauda darbības rezultātu.
    • Salīdzina gaidīto rezultātu ar faktiskajiem datiem.
    • Tiek izmantotas apgalvojumu metodes (assertions) no testēšanas ietvara (piemēram, JUnit, NUnit, pytest) pārbaudes nosacījumiem.

Piemērs ar Python, izmantojot 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():
    """
    Tests divu pozitīvu skaitļu saskaitīšanu.
    """
    # Sakārtošana
    calculator = Calculator()
    num1 = 5
    num2 = 3
    gaidītais_rezultāts = 8

    # Darbība
    faktiskais_rezultāts = calculator.add(num1, num2)

    # Pārbaude
    assert faktiskais_rezultāts == gaidītais_rezultāts, f"Gaidīts {gaidītais_rezultāts}, bet saņemts {faktiskais_rezultāts}"

def test_add_negative_numbers():
    """
    Tests divu negatīvu skaitļu saskaitīšanu.
    """
    # Sakārtošana
    calculator = Calculator()
    num1 = -5
    num2 = -3
    gaidītais_rezultāts = -8

    # Darbība
    faktiskais_rezultāts = calculator.add(num1, num2)

    # Pārbaude
    assert faktiskais_rezultāts == gaidītais_rezultāts, f"Gaidīts {gaidītais_rezultāts}, bet saņemts {faktiskais_rezultāts}"

Triple A priekšrocības:

  • Lasāmība: Testa struktūra kļūst skaidrāka, kas atvieglo tā lasīšanu un saprašanu.
  • Uzturēšana: Skaidrs fāžu sadalījums atvieglo izmaiņu veikšanu un kļūdu labošanu testos.
  • Fokuss: Katra fāze koncentrējas uz savu konkrēto uzdevumu, kas palīdz rakstīt mērķtiecīgākus testus.
  • Standartizācija: Triple A ieviešana komandā veicina vienotu pieeju testu rakstīšanā.