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

Какие знаешь проблемы использования Mock объектов

Использование Mock объектов может привести к нескольким проблемам:

  1. Хрупкие тесты – тесты зависят от внутренней реализации кода, а не от его поведения. Изменение кода может сломать тесты, даже если логика осталась прежней.

  2. Ложные срабатывания – Mock может не отражать реальное поведение объекта, что приводит к успешным тестам, но падению в продакшене.

  1. Сложность поддержки – избыточные Mock-и усложняют тесты, делая их трудными для понимания и изменения.

  2. Неполное тестирование – Mock может пропустить важные побочные эффекты или ошибки, которые возникли бы с реальными зависимостями.

Пример:

python
from unittest.mock import Mock

def test_process_data():
    db = Mock()
    db.query.return_value = [1, 2, 3]  # Упрощённый ответ
    result = process_data(db)  # Тест пройдёт, но если реальный запрос сломается, мы не узнаем
    assert result == 6

Решение: Использовать Mock только для внешних зависимостей (API, БД) и заменять их на реальные объекты, если это безопасно.

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

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

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

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