Releases: wiremock/wiremock-spring-boot
Releases · wiremock/wiremock-spring-boot
3.0.0
This is the first release within WireMock organization. There are many changes, hopefully these are all of them.
Breaking changes
- changing
groupId
fromcom.maciejwalkowiak.spring
toorg.wiremock.integrations
@ConfigureWireMock
no longer hasproperty
orproperties
, replaced bybaseUrlProperties
@ConfigureWireMock
no longer hasstubLocation
, replaced byfilesUnderClasspath
Features
- simplify usage, you just need to annotate test with
@EnableWireMock
, it only needs@ConfigureWireMock
when changing default behavior - default properties
wiremock.server.baseUrl
andwiremock.server.port
@ConfigureWireMock
now hasbaseUrlProperties
, a list of properties that should be populated with the url.@ConfigureWireMock
now hasportProperties
, a list of properties that should be populated with the port.@ConfigureWireMock
now hasusePortFromPredefinedPropertyIfFound
, it will set the port to value of any existing port property.@ConfigureWireMock
now hasfilesUnderClasspath
andfilesUnderDirectory
, both are lists of locations where it looks for mappings.@ConfigureWireMock
now has default namewiremock
- Each WireMock has its logging prefixed with its port number.
- When only one WireMock, it will be configured as a client for that server (
WireMock.configureFor(wireMockServer.port());
)
2.2.0
- Adapted build to WireMock's conventions
- Changed Maven group to
org.wiremock.integrations
v2.1.3
What's Changed
Full Changelog: v2.1.2...v2.1.3
v2.1.2
What's Changed
- Output WireMock logs through Slf4j by @maciejwalkowiak in #27
Full Changelog: v2.1.1...v2.1.2
v2.1.1
What's Changed
- Avoid potential ClassCastException when handling context closed event. by @maciejwalkowiak in #24
Full Changelog: v2.1.0...v2.1.1
v2.1.0
What's Changed
- Favor
@Value
to retrieve property value in README example by @scordio in #17 - Add option to customize configuration on
@ConfigureWireMock
annotation by @maciejwalkowiak in #18 - Upgrade to Spring Boot 3.2.1 and Wiremock Standalone. by @maciejwalkowiak in #23
New Contributors
Full Changelog: v2.0.0...v2.1.0
v2.0.0
v1.0.2
What's Changed
- Add support for nested tests annotated with JUnit 5's
@Nested
by @maciejwalkowiak in #11 - Upgrade to Spring Boot 3.1.5 by @maciejwalkowiak in #12
- Upgrade Wiremock to 2.35.1 by @maciejwalkowiak in #13
- Manage JUnit version with Spring Boot BOM. by @maciejwalkowiak in #14
Full Changelog: v1.0.1...v1.0.2
1.0.1
What's Changed
- Introduce
InjectWireMock
annotation to avoidWireMock
naming collision by @maciejwalkowiak in #9
Full Changelog: v1.0.0...v1.0.1
1.0.0
No changes since 0.1.0. v1.0.0 is the same code base but released to Maven Central.
WireMock Spring Boot library drastically simplifies WireMock configuration in a Spring Boot and JUnit 5 application.
🤩 Highlights
- fully declarative WireMock setup
- support for multiple WireMockServer instances - one per HTTP client as recommended in the WireMock documentation
- automatically sets Spring environment properties
- does not pollute Spring application context with extra beans
- configuring WireMock extensions via
@ConfigureWireMock(extensions = ...
) - configuring stub locations via
@ConfigureWireMock(stubLocations = ...
)
✨ How to use
Use @EnableWireMock
with @ConfigureWireMock
with tests annotated that use SpringExtension
, like @SpringBootTest
:
@SpringBootTest
@EnableWireMock({
@ConfigureWireMock(name = "user-service", property = "user-client.url")
})
class TodoControllerTests {
@WireMock("user-service")
private WireMockServer wiremock;
@Autowired
private Environment env;
@Test
void aTest() {
env.getProperty("user-client.url"); // returns a URL to WireMockServer instance
wiremock.stubFor(...);
}
}
@EnableWireMock
adds test context customizer and enablesWireMockSpringExtension
@ConfigureWireMock
creates aWireMockServer
and passes theWireMockServer#baseUrl
to a Spring environment property with a name given byproperty
.@WireMock
injectsWireMockServer
instance to a test
📢 Feedback is much appreciated!
If you find this library useful, consider ❤️ Sponsoring the project! Thank you!