WireMock — популярный инструмент с открытым исходным кодом для фиктивного тестирования API, который загружают более 5 миллионов раз в месяц. Это может помочь вам создать стабильные среды тестирования и разработки, изолировать себя от ненадежных сторонних разработчиков и моделировать API, которых еще нет.
Созданная в 2011 году Томом Акехерстом как библиотека Java, теперь WireMock охватывает несколько языков программирования и стеков технологий. Он может работать как библиотека или клиентская оболочка на многих языках или как автономный сервер. За проектом и его экосистемой стоит большое сообщество.
WireMock поддерживает несколько подходов к созданию макетов API — в коде, через REST API, в виде файлов JSON и путем записи HTTP-трафика, пересылаемого в другой пункт назначения. WireMock имеет богатую систему сопоставления, позволяющую сопоставлять любую часть входящего запроса по сложным и точным критериям. Ответы любой сложности можно генерировать динамически с помощью системы шаблонов на основе Handlebars. Наконец, WireMock легко интегрируется в любой рабочий процесс благодаря многочисленным точкам расширения и комплексным API.
WireMock может работать в модульных тестах как отдельный процесс или контейнер. Ключевые особенности включают в себя:
Полную документацию можно найти на Wiremock.org/docs.
Если у вас есть вопрос о WireMock или вы столкнулись с проблемой, в которой вы не уверены, является ли она ошибкой, отправьте сообщение в Slack сообщества WireMock на канале #help
.
С другой стороны, если вы абсолютно уверены, что нашли ошибку, откройте проблему.
WireMock использует log4j только в своих тестовых зависимостях. Ни тонкий, ни автономный JAR-файл не зависят от log4j и не встраивают его, поэтому вы можете продолжать использовать WireMock 2.32.0 и выше без какого-либо риска подвергнуться недавно обнаруженной уязвимости.
WireMock существует и продолжает процветать благодаря усилиям участников. Независимо от вашего опыта и времени, которое вы можете посвятить, у вас всегда есть возможность принять участие и помочь проекту!
Дополнительную информацию см. в Руководстве для участников.