MagicMock — расширение Mock с реализованными магическими методами (__str__, __len__, __iter__, __bool__, __getitem__ и другие). Обычный Mock не поддерживает len(mock) — MagicMock поддерживает. MagicMock.__len__.return_value = 5 → len(mock) вернёт 5. mock[key] работает через __getitem__. Для большинства случаев MagicMock удобнее Mock. Исключение: если нужно контролировать какие dunder-методы доступны (для точного тестирования протокола) — используй обычный Mock со spec.