spring-cloud-samples / spring-cloud-contract-samples

Samples for Spring Cloud Contract project
Apache License 2.0
384 stars 310 forks source link

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

Open stahloss opened 5 years ago

stahloss commented 5 years ago

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...

marcingrzejszczak commented 3 years ago

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