Назад к вопросам
Junior
75
questionbank

Что такое юнит-тестирование?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Юнит-тестирование — это процесс тестирования наименьшей изолированной части программы, называемой юнитом (модулем или компонентом), для подтверждения того, что она работает так, как ожидается.

  • Цель: Проверить корректность отдельного модуля.
  • Преимущества:
    • Раннее обнаружение ошибок.
    • Улучшение качества кода.
    • Облегчение рефакторинга.
    • Документация функциональности кода.
  • Инструменты: JUnit, Mockito, PowerMock (для Java).
  • Принцип: Написание тестовых случаев, которые проверяют конкретную функциональность юнита, подавая на вход определенные данные и проверяя ожидаемый результат или поведение.
  • Характеристики хороших юнит-тестов:
    • Независимость: Тесты не зависят друг от друга.
    • Автоматизированность: Могут выполняться автоматически.
    • Быстродействие: Выполняются быстро.
    • Повторяемость: Дают одинаковый результат при каждом запуске.
    • Изолированность: Тестируют только тестируемый юнит, а не его зависимости (используются моки).

Пример с JUnit:

// Класс, который мы хотим протестировать
public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

// Пример юнит-теста с JUnit
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class CalculatorTest {

    @Test
    void testAddPositiveNumbers() {
        Calculator calculator = new Calculator();
        int result = calculator.add(2, 3);
        assertEquals(5, result, "Сумма положительных чисел должна быть правильной");
    }

    @Test
    void testAddZero() {
        Calculator calculator = new Calculator();
        int result = calculator.add(0, 5);
        assertEquals(5, result, "Сумма с нулем должна быть правильной");
    }
}