Что такое Mock в тестировании? Что такое фикстуры (fixtures)?

Mock в тестировании — это объект или функция, которая имитирует поведение реального компонента, чтобы изолировать тестируемый код от внешних зависимостей.

Короткий ответ

Что ответить на собеседовании

Mock в тестировании — это объект или функция, которая имитирует поведение реального компонента, чтобы изолировать тестируемый код от внешних зависимостей. Моки позволяют проверить, как код взаимодействует с другими частями системы, не вызывая реальные сервисы или базы данных.

Подробный разбор

Ответ с пояснениями

Mock в тестировании — это объект или функция, которая имитирует поведение реального компонента, чтобы изолировать тестируемый код от внешних зависимостей. Моки позволяют проверить, как код взаимодействует с другими частями системы, не вызывая реальные сервисы или базы данных.

Фикстуры (fixtures) — это заранее подготовленные данные или состояние, используемые для настройки тестовой среды. Они обеспечивают повторяемость тестов, создавая нужные условия (например, заполненную базу данных, файлы или объекты).

Пример использования mock и фикстуры в Python с pytest:

import pytest
from unittest.mock import Mock

# Фикстура для подготовки данных
@pytest.fixture
def sample_data():
    return {'id': 1, 'name': 'Test'}

# Тест с использованием mock
def test_process_data(sample_data):
    service = Mock()
    service.get_data.return_value = sample_data

    result = process(service)  # функция, которая вызывает service.get_data()

    assert result == expected_result
    service.get_data.assert_called_once()

Таким образом, mock помогает контролировать поведение зависимостей, а фикстуры — создавать стабильную тестовую среду.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее