TGViewer
Spring АйО Spring АйО @spring_aio · 10.9K subscribers
Post #357 7.24K
🔥 У WireMock теперь есть официальная интеграция со Spring Boot!

В конце прошлого года у WireMock появилась официальная интеграция со Spring Boot. WireMock — один из самых популярных инструментов для имитации HTTP API в разработке и тестировании. Но раньше его использование в Spring Boot проектах требовало дополнительных усилий: разработчики вручную настраивали мок-серверы, писали повторяющийся код и работали с фиксированными портами. Это особенно усложняло работу в динамических или контейнеризованных средах.

Ключевые преимущества, которые получат разработчики благодаря интеграции со Spring Boot:

1. Поддержка WireMock с Jetty 12. Появилась поддержка сборки WireMock на базе Jetty 12. Теперь используется компактный JAR-файл jetty12 вместо более крупного standalone JAR. Это особенно полезно для команд, которые стремятся минимизировать размер загружаемых зависимостей.

2. Аннотации для настройки WireMock в тестах. Теперь можно создавать и настраивать экземпляры WireMock с помощью аннотаций. Например, можно определить экземпляр WireMock в тестовом классе следующим образом:


@SpringBootTest(classes = MyAppConfiguration.class)
@EnableWireMock
class MyTest {

@InjectWireMock
private WireMockServer wm;

// тесты
}


Всего несколько строк кода — и интеграция автоматически создаст мок-сервер, настроит его и возьмёт на себя управление его жизненным циклом.

3. Поддержка Extension Factories через аннотации конфигурации. Благодаря этому нововведению процесс подключения расширений WireMock, таких как gRPC или любых других пользовательских плагинов, значительно упростился. Теперь для загрузки gRPC-расширения WireMock достаточно указать всего один параметр в конфигурации:


@EnableWireMock({
@ConfigureWireMock(
extensionFactories = {Jetty12GrpcExtensionFactory.class}
)
})


4. Динамическое выделение портов и интеграция с пропертями. Одной из частых проблем при тестировании с мок-серверами является конфликт портов. WireMock решает эту задачу за счёт динамического назначения портов, что уменьшает вероятность конфликтов. Однако такой подход требует передачи номера порта в базовый URL HTTP-клиента внутри Spring Boot приложения, что может быть не таким уж простым процессом.

Интеграция WireMock с Spring Boot решает этот вопрос: порт WireMock (и другие полезные параметры среды выполнения) автоматически добавляются в контекст приложения в виде свойств, за счёт чего легко получить назначенный порт и использовать его для настройки API-зависимостей тестируемого приложения. Например:


api.client.base-url=http://localhost:${wiremock.server.port}


Начало работы с WireMock в Spring Boot:

Чтобы начать использовать официальную интеграцию WireMock с Spring Boot, добавьте в ваш pom.xml или build.gradle следующую зависимость и начните использовать аннотации и параметры конфигурации для создания экземпляров WireMock в тестах:


@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = MySpringbootApplication.class
)
@EnableWireMock({
@ConfigureWireMock(
name = "greeting-service"
)
})
class MyApplicationTests {
// Реализация тестов
}


🔗 Для примеров и подробной информации о работе с WireMock в Spring Boot оставляем ссылку на официальную документацию.
  • 🔥 60
  • 👍 25
  • ❤ 16
More from @spring_aio
  1. Oct 11, 2026🎬 Записи докладов с JPoint 2026 уже в открытом доступе JUG Ru Group выложили записи с про…
  2. Oct 9, 2026👩‍💻 Kotlin получил почти настоящие статики Начиная с Kotlin 2.5.0-Beta1 можно эксперимен…
  3. Oct 8, 2026🍃 Spring Boot ломает совместимость, G1 тормозит микросервисы, Java долго релизит фичи | S…
  4. Oct 6, 2026👩‍💻 Spring Config Import без магии У наших друзей из Axelix вышла статья о том, как Spri…
  5. Oct 5, 2026🥲 В Java 27 TLS научился переживать квантовую атаку При установке HTTPS-соединения клиент…
  6. Oct 3, 2026⚡️⚡️Строки кода стремятся подешеветь до цены токена. Что остается ценным? Про это — трек «…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →