Когда речь заходит о разработке современных IT-систем, вопрос мокирования внешних зависимостей всегда идет где-то рядом. Внешний сервис может быть недоступен на этапе разработки, либо его функционал разрабатывается параллельно и на него нельзя полагаться. Особенно остро этот вопрос встает на этапе написания автотестов, ведь проверять нужно не только штатное поведение системы, но и исключительные случаи: недоступность внешнего сервиса, случаи, когда внешний сервис отвечает ошибкой и так далее.
В своем докладе Андрей рассказал о решении этих проблем через мокирование, поделился лучшими практиками применения моков при ручном и автотестировании, объяснил механизм встраивания системы моков внутрь автотестового фреймворка.
В предыдущие годы на Гейзенбаге уже касались темы мокирования, но то был рассказ о собственном инструменте мокирования для внутреннего использования, который недоступен QA-сообществу. Отличительной чертой доклада Андрея является то, что теория подкреплена практикой применения конкретного open source-инструмента, доступного каждому желающему: Mountebank.
В практической части доклада Андрей показал применение этого инструмента в тестовом фреймворке на Python, но доклад не ограничился только питонистами: тот же инструментарий подойдет и тестировщикам, использующим другие языки программирования.