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

В чём разница между mock и magic mock в тестировании

Mock и MagicMock — это инструменты из модуля unittest.mock для создания заглушек в тестах.

  • Mock — базовая заглушка, которая заменяет объект и позволяет проверять вызовы методов. Не поддерживает магические методы (например, __len__, __iter__).
python
from unittest.mock import Mock

mock = Mock()
mock.some_method()  # Работает
len(mock)  # TypeError: object of type 'Mock' has no len()
  • MagicMock — наследник Mock, автоматически поддерживает магические методы.
python
from unittest.mock import MagicMock

magic_mock = MagicMock()
magic_mock.__len__.return_value = 5  # Можно задать поведение
len(magic_mock)  # 5

Когда использовать:

  • Mock — если не нужны магические методы.
  • MagicMock — если требуется эмуляция контейнеров, строк или других объектов с перегрузкой операторов.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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