Sobes.tech
Junior

გვითხარით Triple A პრინციპის შესახებ ტესტირებაში (Arrange, Act, Assert).

sobes.tech AI

პასუხი AI-სგან

ტრიპლ ე.ა. პრინციპი (Arrange,Act,Assert) ეხმარება უნიტ-ტესტების სტრუქტურირებაში მათი წაკითხულობისა და შენარჩუნების გასაუმჯობესებლად. იგი თითოეულ ტესტს სამ მკაფიო ფაზად ყოფს:

  1. Arrange (მზადება):

    • კონფიგურირებს ტესტის გარემოს, ინიციალიზებს საჭირო ობიექტებს, ქმნის фикსტურებს, მოკებს ან სტაბებს ტესტირებადი კომპონენტის იზოლაციისთვის.
    • განსაზღვრავს შესასვლელ მონაცემებს ტესტირებადი ფუნქციის ან მეთოდისთვის.
  2. Act (მოქმედება):

    • ახორციელებს ძირითად მოქმედებას, რომელიც უნდა ტესტირდეს.
    • ეს შეიძლება იყოს ტესტირებადი მეთოდის გამოძახება ან გარკვეული ოპერაციის შესრულება.
  3. Assert (დადასტურება):

    • შემოწმებს მოქმედების შედეგს.
    • შედარებს მოსალოდნელ შედეგს რეალურ შედეგთან.
    • გამოიყენება ტესტის ჩარჩოს (მაგ., JUnit, NUnit, pytest) დადასტურების მეთოდები.

Python-ის მაგალითი 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():
    """
    ორი დადებითი რიცხვის ჯამის ტესტი.
    """
    # Arrange
    calculator = Calculator()
    num1 = 5
    num2 = 3
    ელოდება შედეგი = 8

    # Act
    რეალური შედეგი = calculator.add(num1, num2)

    # Assert
    assert რეალური შედეგი == ელოდება შედეგი, f"ელოდებოდა {ელოდება შედეგი}, მაგრამ მივიღე {რეალური შედეგი}"

def test_add_negative_numbers():
    """
    ორი უარყოფითი რიცხვის ჯამის ტესტი.
    """
    # Arrange
    calculator = Calculator()
    num1 = -5
    num2 = -3
    ელოდება შედეგი = -8

    # Act
    რეალური შედეგი = calculator.add(num1, num2)

    # Assert
    assert რეალური შედეგი == ელოდება შედეგი, f"ელოდებოდა {ელოდება შედეგი}, მაგრამ მივიღე {რეალური შედეგი}"

Triple A-ის გამოყენების უპირატესობები:

  • კითხულობა: ტესტის სტრუქტურა უფრო გასაგებია, რაც ადვილად წასაკითხია და ხსნადია.
  • მოწყობა: ნათელი ფაზების განყოფილება ამარტივებს ცვლილებებს და შეცდომების გამოსწორებას.
  • კონცენტრაცია: თითოეული ფაზა კონცენტრირებულია თავის კონკრეტულ დავალებაზე, რაც ეხმარება მიზნობრივი ტესტების დაწერას.
  • სტანდარტიზაცია: Triple A-ის დანერგვა გუნდში უზრუნველყოფს ერთგვაროვნებას ტესტების დაწერაში.