Sobes.tech
Junior — Middle
68

Можете ли вы объяснить, что подразумевается под mock-объектами при использовании pytest?

Компании, где спрашивали
Медси
РунитиРунити
Леста

Ответ от нейросети

sobes.tech AI

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

В pytest для создания mock-объектов часто используют библиотеку unittest.mock, которая предоставляет класс Mock и декораторы для подмены функций и методов.

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

from unittest.mock import Mock

def get_data():
    # Представим, что эта функция делает запрос к внешнему API
    pass

def process():
    data = get_data()
    return data * 2

# В тесте подменяем get_data
mock_get_data = Mock(return_value=10)

# Заменяем функцию get_data на mock
get_data = mock_get_data

assert process() == 20
mock_get_data.assert_called_once()

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