Мок-объекты на практике
Обратимся к библиотеке Mockery для создания мок-объектов.
Предположим, что у нас есть функция, которая делает запрос к API и возвращает ответ в виде структуры данных — вот пример кода.
Мы можем использовать мок-объект, чтобы имитировать ответ API и проверить, как наш код обрабатывает этот ответ. Для этого создадим интерфейс, который будет использоваться вместо реального запроса к API — посмотри код тут.
Затем мы можем создать мок-объект, который будет имитировать поведение реального запроса к API — посмотри этот код.
Теперь можно создать тестовую функцию, которая будет использовать наш мок-объект для тестирования.
А для тестирования функции GetResponse() с использованием мок-объекта MockAPIRequester мы можем написать следующий тест.
В этом тесте мы создаем мок-объект MockAPIRequester с заранее определенным ответом и ошибкой. Затем подменяем реальный запрос к API на мок-объект mockRequester и вызываем функцию GetResponse(). Наконец, мы проверяем, что результаты соответствуют ожиданиям, определенным в моке. Если ответ или ошибка не соответствуют ожиданиям, то тест завершается неудачей.
Этот тест позволяет нам проверить, что функция GetResponse() правильно обрабатывает ответ от API. Мы можем легко изменить мок-объект, чтобы тестировать различные сценарии и граничные случаи, что поможет нам убедиться в правильной работе нашего кода.