spring-cloud-contract-samples icon indicating copy to clipboard operation
spring-cloud-contract-samples copied to clipboard

Add sample combining Spring Cloud Contract, WebTestClient, RestAssured and Spring Restdocs

Open stahloss opened this issue 5 years ago • 1 comments

Would it be an idea to add a sample combining Spring Cloud Contract, WebTestClient, RestAssured and Spring Restdocs?

WebTestClient can be configured to use Restdocs and so does RestAssured. But under Spring Cloud Contract there seems to be no way to configure so that the snippets are written. For instance, the following setup doesn't work:

@RunWith(SpringRunner.class)
@WebFluxTest(controllers = StateHandler.class)
public class AbstractSpringCloudContractTestBase {

    @Rule
    public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("target/generated-snippets");

    @Inject
    private ApplicationContext context;
    @MockBean
    private StateRepository stateRepository;
    protected RequestSpecification documentationSpec;

    @Before
    public void beforeEach() {
        WebTestClient webTestClient = WebTestClient.bindToApplicationContext(context).configureClient()
                                           .filter(documentationConfiguration(restDocumentation)).build();
        RestAssuredWebTestClient.webTestClient(webTestClient);
    }
}

Using the spring-cloud-contract-maven-plugin and running the tests will not result in Spring Restdocs output.

An example on how to make this work would be much appreciated.

Question is if there is actually a DSL first approach possible with WebFlux, Spring Cloud Contract and Spring Restdocs...

stahloss avatar Jul 04 '19 13:07 stahloss

There might be a problem with that due to https://github.com/spring-projects/spring-framework/issues/26662

marcingrzejszczak avatar Mar 11 '21 09:03 marcingrzejszczak