tgoop.com/phpproglib/5173
Last Update:
Моки — это инструмент для тестирования поведения объектов в изолированных условиях. Они позволяют заменить реальные зависимости на их имитацию, чтобы избежать обращения к внешним ресурсам, которые могут замедлить выполнение тестов.
Зачем нужны моки
Основная задача моков — проверять взаимодействие между объектами. Это достигается за счёт возможности задать ожидаемое поведение и проверить, насколько реальные вызовы совпадают с этими ожиданиями. Например, можно проверить, сколько раз вызывается метод и с какими параметрами.
Типичные ошибки при использовании моков
1. Отсутствие ожиданий
Если задать только возвращаемое значение без проверки взаимодействий, тест может не обнаружить проблемы.
✅ Правильный подход: указывать, какие методы должны вызываться и с какими параметрами.
2. Мокирование конкретных классов вместо интерфейсов
Моки лучше создавать на основе интерфейсов, так как они реже меняются, чем реализации.
3. Чрезмерное использование моков
Излишнее мокирование усложняет тесты и может указывать на проблемы с проектированием.
4 .Маскировка плохого дизайна
Если моки используются для тестирования тесно связанных компонентов, это может быть признаком нарушения принципа разделения ответственности.
5. Полная зависимость от моков
Хотя моки полезны, они не заменяют другие виды тестов, такие как интеграционные или end-to-end тесты.
Как распознать неправильное использование моков
🔸Тесты не отражают реальные сценарии, что приводит к игнорированию критичных ошибок в продакшене.
🔸Тесты слишком сильно связаны с реализацией, из-за чего частое обновление моков становится необходимостью.
🔸Чрезмерная сложность тестов делает их трудными для чтения и поддержки.
BY Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
Share with your friend now:
tgoop.com/phpproglib/5173