Skip to content

Мок-объекты на практике

Обратимся к библиотеке Mockery для создания мок-объектов.

Предположим, что у нас есть функция, которая делает запрос к API и возвращает ответ в виде структуры данных — вот пример кода.

Мы можем использовать мок-объект, чтобы имитировать ответ API и проверить, как наш код обрабатывает этот ответ. Для этого создадим интерфейс, который будет использоваться вместо реального запроса к API — посмотри код тут.

Затем мы можем создать мок-объект, который будет имитировать поведение реального запроса к API — посмотри этот код.

Теперь можно создать тестовую функцию, которая будет использовать наш мок-объект для тестирования.

А для тестирования функции GetResponse() с использованием мок-объекта MockAPIRequester мы можем написать следующий тест.

В этом тесте мы создаем мок-объект MockAPIRequester с заранее определенным ответом и ошибкой. Затем подменяем реальный запрос к API на мок-объект mockRequester и вызываем функцию GetResponse(). Наконец, мы проверяем, что результаты соответствуют ожиданиям, определенным в моке. Если ответ или ошибка не соответствуют ожиданиям, то тест завершается неудачей.

Этот тест позволяет нам проверить, что функция GetResponse() правильно обрабатывает ответ от API. Мы можем легко изменить мок-объект, чтобы тестировать различные сценарии и граничные случаи, что поможет нам убедиться в правильной работе нашего кода.