Встречается на собеседованиях • сегодня

Как писать функции, чтобы их было легко покрывать Unit тестами

Функции должны быть:

  1. Чистыми – результат зависит только от входных данных, нет побочных эффектов.
  2. Детерминированными – при одинаковых входных данных всегда одинаковый результат.
  3. Малыми – одна функция = одна ответственность.
  4. Изолированными – минимум зависимостей, внешние сервисы/состояния передаются через параметры или dependency injection.

Пример плохой функции:

python
def process_data():
    data = read_from_db()  # Зависит от БД
    return data.upper()

Пример тестируемой функции:

python
def process_data(data: str) -> str:
    return data.upper()

Как тестировать:

python
def test_process_data():
    assert process_data("test") == "TEST"

Используйте моки для внешних зависимостей (например, unittest.mock). Чем проще функция, тем проще её покрыть тестами.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы