Что такое тестирование в Python и для чего оно применяется?

Ответ

Тестирование в Python — это процесс автоматической проверки кода для подтверждения его корректной работы и предотвращения ошибок (регрессий) при будущих изменениях.

Основная цель — гарантировать, что каждая часть программы работает так, как от нее ожидается, как в изоляции, так и во взаимодействии с другими частями.

Основные виды тестов:

  • Unit-тесты (модульные): Проверяют наименьшие, изолированные части кода, например, одну функцию или метод класса.
  • Интеграционные тесты: Проверяют, как несколько компонентов системы работают вместе.
  • End-to-end (E2E) тесты: Тестируют приложение целиком, имитируя действия реального пользователя.

Популярные фреймворки:

  • unittest: Входит в стандартную библиотеку Python, основан на xUnit.
  • pytest: Считается отраслевым стандартом благодаря простому синтаксису, мощным фикстурам и плагинам.

Пример теста с использованием pytest:

# Файл: my_math.py
def add(a, b):
    """Простая функция сложения чисел."""
    return a + b

# Файл: test_my_math.py
from my_math import add

def test_add_positive_numbers():
    """Тестирует сложение положительных чисел."""
    assert add(2, 3) == 5

def test_add_negative_numbers():
    """Тестирует сложение отрицательных чисел."""
    assert add(-1, -1) == -2

Для запуска тестов достаточно выполнить в терминале команду pytest. Фреймворк автоматически найдет и выполнит все тесты.