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:
-
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.
-
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.
-
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ā.