Sobes.tech
Назад к вопросам
Middle
7

Про декораторы в Python — что это, где используются в тестах?

Компании, где спрашивали
Octo

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

sobes.tech AI

Декораторы в Python — это функции, которые принимают другую функцию и возвращают новую функцию с расширенным поведением, не изменяя исходный код.

В тестах декораторы часто используются для:

  • Повторного использования кода (например, настройка окружения перед тестом).
  • Логирования или измерения времени выполнения тестов.
  • Пропуска тестов при определённых условиях.

Пример использования декоратора для пропуска теста, если не выполнено условие:

import unittest

def skip_if_no_db(func):
    def wrapper(*args, **kwargs):
        if not check_db_connection():
            raise unittest.SkipTest("Нет подключения к БД")
        return func(*args, **kwargs)
    return wrapper

class MyTests(unittest.TestCase):
    @skip_if_no_db
    def test_query(self):
        # тест, который требует БД
        pass

Таким образом, декораторы помогают сделать тесты более гибкими и читаемыми.