Моки, стабы, заглушки: зачем они нужны

🎯 Цель урока:

Понять, как использовать моки, стабы и заглушки для изоляции тестируемого кода и упрощения проверки сложных систем.

✨ Результат: Вы сможете имитировать зависимости в тестах, чтобы находить баги быстрее и точнее!

Что такое моки, стабы и заглушки?

📌 Простыми словами: Это «актеры», которые заменяют реальные компоненты системы во время тестирования, чтобы:

- Изолировать тестируемый модуль.
- Упростить воспроизведение сложных сценариев.
- Ускорить выполнение тестов.

👉 Аналогия: Как дублеры в кино 🎥 — они заменяют главных героев в опасных сценах, чтобы съемки прошли без проблем.

1. Заглушки (Stubs) 🧩

📌 Что это?
Простой объект, который возвращает заранее заданные данные вместо реального компонента.

Пример из жизни:
Тестируете калькулятор, но кнопка «умножить» ещё не работает. Заглушка для умножения всегда возвращает 10 (даже если ввести 2 × 5).

Пример из IT:
- Заглушка для платежного шлюза всегда отвечает «Оплата успешна».
- Заглушка для базы данных возвращает тестовый набор пользователей.

Когда использовать?
- Когда нужно подменить внешний сервис (например, API, который ещё не готов).
- Для проверки реакции модуля на разные данные (успех/ошибка).

2. Стабы (Stubs) 🎭

📌 Что это?
Объект, который не только возвращает данные, но и имитирует поведение реального компонента.

Пример из жизни:
Автоответчик в кол-центре: «Спасибо за звонок! Ваш номер в очереди — 5». Он имитирует живого оператора.

Пример из IT:

Стаб для сервиса погоды:
- Принимает запрос с городом.
- Всегда возвращает температуру +25°C.

Когда использовать?

Для проверки сценариев с заранее известными условиями (например, «если сервис недоступен»).

3. Моки (Mocks) 🕵️♂️

📌 Что это?
Объект, который проверяет, как тестируемый модуль взаимодействует с другими компонентами.

Пример из IT:
- Мок для логгера проверяет, что ошибка была записана в журнал.
- Мок для API проверяет, что запрос отправлен с правильными параметрами.

Когда использовать?

Когда важно убедиться, что модуль корректно вызывает другие сервисы.

Практическое задание 🧩📝

Задача: Определите, какой инструмент использовать:
- Проверить, что приложение отправляет запрос к API погоды при запуске.
- Имитировать ответ «Недостаточно средств» от платежной системы.
- Заменить реальную базу данных тестовыми данными.

Пример ответа:
- Мок (проверяем вызов API).
- Стаб (имитируем ответ с ошибкой).
- Заглушка (подменяем БД).

Ограничения и советы

- Не переусердствуйте: Если все компоненты заменены заглушками, тесты могут потерять связь с реальностью.
- Комбинируйте подходы: Например, моки + заглушки для проверки сложных сценариев.

Итог урока 🎓✨:

Заглушки — для подмены данных.
Стабы — для имитации поведения.
Моки — для проверки взаимодействий.

Используйте их, чтобы тесты были быстрыми, изолированными и надежными!

💡 Вопрос для размышления:
Как бы вы протестировали модуль, который отправляет email, если почтовый сервер временно недоступен?

Тестовые вопросы

Для прохождения тестов необходимо войти в свой аккаунт или зарегистрироваться.


Комментарии


Комментарии

Пока нет комментариев.

Для сохранения прогресса и доступа ко всем функциям, пожалуйста, войдите в систему или зарегистрируйтесь.