jar

au.com.dius : pact-jvm-provider-junit5-spring

Maven & Gradle

Apr 18, 2020
1k stars

pact-jvm-provider-junit5-spring · # Pact Spring/JUnit5 Support This module extends the base [Pact JUnit5 module](../pact-jvm-provider-junit5). See that for more details. For writing Spring Pact verification tests with JUnit 5, there is an JUnit 5 Invocation Context Provider that you can use with the `@TestTemplate` annotation. This will generate a test for each interaction found for the pact files for the provider. To use it, add the `@Provider` and `@ExtendWith(SpringExtension.class)` and one of the pact source annotations to your test class (as per a JUnit 5 test), then add a method annotated with `@TestTemplate` and `@ExtendWith(PactVerificationSpringProvider.class)` that takes a `PactVerificationContext` parameter. You will need to call `verifyInteraction()` on the context parameter in your test template method. For example: ```java @ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) @Provider("Animal Profile Service") @PactBroker public class ContractVerificationTest { @TestTemplate @ExtendWith(PactVerificationSpringProvider.class) void pactVerificationTestTemplate(PactVerificationContext context) { context.verifyInteraction(); } } ``` You will now be able to setup all the required properties using the Spring context, e.g. creating an application YAML file in the test resources: ```yaml pactbroker: host: your.broker.host auth: username: broker-user password: broker.password ``` You can also run pact tests against `MockMvc` without need to spin up the whole application context which takes time and often requires more additional setup (e.g. database). In order to run lightweight tests just use `@WebMvcTest` from Spring and `MockMvcTestTarget` as a test target before each test. For example: ```java @WebMvcTest @Provider("myAwesomeService") @PactBroker class ContractVerificationTest { @Autowired private MockMvc mockMvc; @TestTemplate @ExtendWith(PactVerificationInvocationContextProvider.class) void pactVerificationTestTemplate(PactVerificationContext context) { context.verifyInteraction(); } @BeforeEach void before(PactVerificationContext context) { context.setTarget(new MockMvcTestTarget(mockMvc)); } } ``` You can also use `MockMvcTestTarget` for tests without spring context by providing the controllers manually. For example: ```java @Provider("myAwesomeService") @PactFolder("pacts") class MockMvcTestTargetStandaloneMockMvcTestJava { @TestTemplate @ExtendWith(PactVerificationInvocationContextProvider.class) void pactVerificationTestTemplate(PactVerificationContext context) { context.verifyInteraction(); } @BeforeEach void before(PactVerificationContext context) { MockMvcTestTarget testTarget = new MockMvcTestTarget(); testTarget.setControllers(new DataResource()); context.setTarget(testTarget); } @RestController static class DataResource { @GetMapping("/data") @ResponseStatus(HttpStatus.NO_CONTENT) void getData(@RequestParam("ticketId") String ticketId) { } } } ``` **Important:** Since `@WebMvcTest` starts only Spring MVC components you can't use `PactVerificationSpringProvider` and need to fallback to `PactVerificationInvocationContextProvider`

Table Of Contents

Latest Version

Download au.com.dius : pact-jvm-provider-junit5-spring JAR file - Latest Versions:

All Versions

Download au.com.dius : pact-jvm-provider-junit5-spring JAR file - All Versions:

Version Vulnerabilities Size Updated
4.0.x

View Java Class Source Code in JAR file

  1. Download JD-GUI to open JAR file and explore Java source code file (.class .java)
  2. Click menu "File → Open File..." or just drag-and-drop the JAR file in the JD-GUI window pact-jvm-provider-junit5-spring-4.0.10.jar file.
    Once you open a JAR file, all the java classes in the JAR file will be displayed.

au.com.dius.pact.provider.spring.junit5

├─ au.com.dius.pact.provider.spring.junit5.MockMvcTestTarget.class - [JAR]

├─ au.com.dius.pact.provider.spring.junit5.PactVerificationSpringProvider.class - [JAR]

├─ au.com.dius.pact.provider.spring.junit5.SpringEnvironmentResolver.class - [JAR]

Advertisement

Dependencies from Group

Apr 29, 2020
31 usages
1k stars
Nov 04, 2018
27 usages
1k stars
Nov 04, 2018
18 usages
1k stars
Apr 29, 2020
13 usages
1k stars
Apr 29, 2020
12 usages
1k stars

Discover Dependencies

Mar 10, 2020
2 stars
Mar 10, 2020
2 stars
Mar 10, 2020
2 stars
Feb 18, 2023
0 stars
Aug 25, 2023
7 usages
11.9k stars
Dec 08, 2022
1 usages
38 stars