Document parameterized output with WebTestClient
Closes gh-713
This commit is contained in:
@@ -16,6 +16,7 @@ dependencies {
|
||||
asciidoctorExt("io.spring.asciidoctor:spring-asciidoctor-extensions-block-switch:0.5.0")
|
||||
|
||||
internal(platform(project(":spring-restdocs-platform")))
|
||||
internal(enforcedPlatform("org.springframework:spring-framework-bom:5.3.8"))
|
||||
|
||||
testImplementation(project(":spring-restdocs-mockmvc"))
|
||||
testImplementation(project(":spring-restdocs-restassured"))
|
||||
|
||||
@@ -1317,8 +1317,8 @@ You can configure which snippets are produced by default. See the
|
||||
[[documentating-your-api-parameterized-output-directories]]
|
||||
=== Using Parameterized Output Directories
|
||||
|
||||
When using MockMvc or REST Assured, you can parameterize the output directory used by
|
||||
`document`. You cannot parameterize the output directory when using `WebTestClient`.
|
||||
When using MockMvc, REST Assured, or `WebTestClient` you can parameterize the output directory used by
|
||||
`document`. Parameterizing output with `WebTestClient` requires Spring Framework 5.3.5 or later.
|
||||
|
||||
The following parameters are supported:
|
||||
|
||||
@@ -1368,6 +1368,12 @@ include::{examples-dir}/com/example/mockmvc/ParameterizedOutput.java[tags=parame
|
||||
----
|
||||
include::{examples-dir}/com/example/restassured/ParameterizedOutput.java[tags=parameterized-output]
|
||||
----
|
||||
|
||||
[source,java,indent=0,role="secondary"]
|
||||
.WebTestClient
|
||||
----
|
||||
include::{examples-dir}/com/example/webtestclient/ParameterizedOutput.java[tags=parameterized-output]
|
||||
----
|
||||
====
|
||||
|
||||
With this configuration in place, every call to the service you are testing produces
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright 2014-2021 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.example.webtestclient;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.restdocs.JUnitRestDocumentation;
|
||||
import org.springframework.test.web.reactive.server.WebTestClient;
|
||||
|
||||
import static org.springframework.restdocs.webtestclient.WebTestClientRestDocumentation.document;
|
||||
import static org.springframework.restdocs.webtestclient.WebTestClientRestDocumentation.documentationConfiguration;
|
||||
|
||||
public class ParameterizedOutput {
|
||||
|
||||
@Rule
|
||||
public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation();
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private WebTestClient webTestClient;
|
||||
|
||||
@Autowired
|
||||
private ApplicationContext context;
|
||||
|
||||
// tag::parameterized-output[]
|
||||
@Before
|
||||
public void setUp() {
|
||||
this.webTestClient = WebTestClient.bindToApplicationContext(this.context)
|
||||
.configureClient()
|
||||
.filter(documentationConfiguration(this.restDocumentation))
|
||||
.entityExchangeResultConsumer(document("{method-name}/{step}"))
|
||||
.build();
|
||||
}
|
||||
// end::parameterized-output[]
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user