Почему мы используем разблокировку для нашего полного стека

Посмотрим правде в глаза, издевательство - отстой. Каждый язык программирования и платформа имеют разные инструменты, которые помогут вам имитировать вызовы API, но все они имеют некоторые общие уязвимости:

  • Нет чистого способа проверить, являются ли макеты правильным представлением API.
  • Невозможно избежать обратной инженерии API, над которым вы насмехаетесь.
  • Невозможно быстро имитировать внутренние API.
  • Нет возможности отслеживать в производственной среде, похожи ли макеты из ваших тестов на данные, которые вы возвращаете в дикой природе.

В результате команды теряют массу времени и энергии на написание макетов для своих модульных и интеграционных тестов, что приводит к ошибкам в тестах, меньшему охвату тестов и, в конечном итоге, к менее надежной производственной среде.

снимать

Введите разблокировать. Unmock - это здорово, потому что он в основном обо всем позаботится за вас. На YouTube есть хороший обзор сервиса (в настоящее время он находится в стадии закрытого бета-тестирования), но я подумал, что расскажу вам, как unmock ускоряет работу нашей команды в Meeshkan.

Первое, что нужно знать о разблокировке - это то, что объем написанного вами тестового кода резко сокращается, потому что вы не запускаете свои собственные макеты. В Meeshkan мы практически удалили весь наш имитирующий код, включая логику, которая его связывала, и использовали unmock в качестве замены для наших вызовов API. Настройка имитируемых ответов действительно интуитивно понятна, и в результате мы смогли быстро написать краевые тесты для всех видов плохих вызовов API - неожиданных нулей, пустых строк и т. Д. Мы также обнаружили несколько неверных предположений о API-интерфейсы, которые мы используем, что действительно спасает жизнь, когда вы пытаетесь быстро создать продукт.

Одна особенность, которую мы особенно ценим, - это то, как unmock обрабатывает вызовы API в одном и том же тесте. По сути, нажав «Родитель» на app.unmock.io, вы можете вернуться назад во времени по своим мокам, чтобы действительно быстро увидеть данные, которые поступают в ваши тесты. Конечно, вы можете мгновенно изменить все это, чтобы рассказать историю, которую хотите рассказать с помощью тестов.

В то время как unmock предлагает функцию сохранения для локальной загрузки mocks, на самом деле мы обнаружили, что это наименее полезная функция продукта. Сначала мы проверяли наши макеты в системе контроля версий, но быстро поняли, что гораздо лучше, чтобы макеты работали в режиме разблокировки по ряду причин. Главный из них заключается в том, что вам не нужно беспокоиться о том, какие mock'ы создаются локально, а какие извлекаются из unmock по мере того, как вы добавляете все больше и больше вызовов в свои тесты - у вас есть единый источник mocks. Кроме того, для схем graphql unmock автоматически обновляет схему по мере ее публикации, что позволяет избежать замораживания устаревших макетов. Еще одна потрясающая функция - это производственный мониторинг unmock: если вы получаете имитацию от unmock API, он автоматически отслеживает, какие данные видят ваши API-вызовы, а затем узнает в производственной среде, если какие-либо из этих данных отсутствуют - отсутствуют, искажены и т. Д.

Unmock быстро переместился в центр нашего стека тестирования на нескольких платформах - Android, iOS и в Интернете - так что мы можем быстро создавать точные тесты, не беспокоясь о страшных ошибках 401 и ошибках, возникающих из кода поставщика обратного проектирования в ваших тестах. Попробуй попасть в бету, если сможешь!