Sobes.tech
Junior

Тести воҳиди чист ва мақсадҳои асосии он чист?

sobes.tech AI

Ҷавоб аз AI

Тестҳои воҳидӣ усули санҷиши нармафзор мебошанд, ки дар он қисмҳои хурди, ҷудошудаи коди манбаъ (ваҳидҳо), ки мустақилона функсионалӣ мебошанд, санҷида мешаванд. Аксар вақт, ваҳид як метод ё класа мебошад.

Мақсадҳои асосӣ:

  • Гарантияи дурустӣ: Санҷед, ки ҳар як қисми алоҳидаи барнома дар изоляция чӣ гуна кор мекунад.
  • Ҳолати хатогиро осон кардан: Дар марҳилаҳои аввали таҳия хатогиҳоро муайян кардан, ки ин хароҷоти онҳоро кам мекунад.
  • Беҳтар кардани тарҳ: Навиштани коди санҷишшаванда одатан ба коди бештар модулӣ ва хуб тарҳрезишуда оварда мерасонад.
  • Дастгирии рефакторинг: Имконият барои тағир додани бехатаронаи сохтори коди, бо боварӣ, ки функсионалият дар ҳоли ҳозир вайрон намешавад.
  • Дастгирии ҳуҷҷатгузорӣ: Тестҳо метавонанд ҳамчун намунаҳои истифодаи коди хизмат кунанд ва рафтори онро ҳуҷҷатгузорӣ кунанд.
  • Кам кардани хароҷот: Дарёфт ва ислоҳи хатогиҳо дар марҳилаҳои аввал хеле арзонтар аст, нисбат ба марҳилаҳои баъдӣ ё истеҳсолот.

Масалан, як тести оддии воҳид бо истифода аз JUnit:

// src/test/java/com/example/CalculatorTest.java
package com.example;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class CalculatorTest {

    @Test
    void testAdd() {
        Calculator calculator = new Calculator();
        int result = calculator.add(2, 3);
        assertEquals(5, result, "Ҳамагунаи 2 ва 3 бояд 5 бошад"); // Санҷед, ки 2 + 3 = 5
    }

    @Test
    void testSubtract() {
        Calculator calculator = new Calculator();
        int result = calculator.subtract(5, 2);
        assertEquals(3, result, "Фарқи 5 ва 2 бояд 3 бошад"); // Санҷед, ки 5 - 2 = 3
    }
}
// src/main/java/com/example/Calculator.java
package com.example;

public class Calculator {

    public int add(int a, int b) {
        return a + b;
    }

    public int subtract(int a, int b) {
        return a - b;
    }
}