> Как организовать юнит-тесты в Python? (Python)
Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: praktika.ai, Исходный Код
Стек: Python
> Пример ответа
Для организации юнит-тестов в Python рекомендуется использовать встроенный модуль unittest или более современный pytest. Основные принципы:
-
Структура проекта: Тесты обычно размещают в отдельной директории
tests/, которая зеркалирует структуру основного кода. Например:project/ ├── src/ │ └── my_module.py └── tests/ └── test_my_module.py -
Именование: Файлы тестов начинаются с
test_, функции - сtest_. Это позволяет автоматически обнаруживать их. -
Пример с
pytest(рекомендуется за простоту):PYTHON# tests/test_calculator.pyimport pytestfrom src.calculator import adddef test_add_positive():assert add(2, 3) == 5def test_add_negative():assert add(-1, -1) == -2 -
Фикстуры: Для подготовки данных используйте
@pytest.fixture:PYTHON@pytest.fixturedef user_data():return {"name": "Alice", "age": 30}def test_user(user_data):assert user_data["name"] == "Alice" -
Запуск: Выполните
pytestв корне проекта - он найдет все тесты автоматически. -
Изоляция: Каждый тест должен быть независимым. Используйте моки (
unittest.mockилиpytest-mock) для замены внешних зависимостей. -
Параметризация: Для тестирования множества сценариев:
PYTHON@pytest.mark.parametrize("a,b,expected", [(1,2,3), (0,0,0), (-1,1,0)])def test_add(a, b, expected):assert add(a, b) == expected
Такой подход обеспечивает читаемость, поддерживаемость и быстрый запуск тестов.
> Похожие задачи по Python
Как оптимизировать SQL запросы
Что такое нефункциональное тестирование и какие виды оно включает?
Как тестировать миграции базы данных?
Что такое git flow
> Похожие задачи по backend
Как оптимизировать SQL запросы
Что такое нефункциональное тестирование и какие виды оно включает?
Как тестировать миграции базы данных?
Что происходит внутри dict при добавлении нового элемента
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью