diff --git a/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc b/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc index d101046682..46abcdcd80 100644 --- a/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc +++ b/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc @@ -7695,6 +7695,28 @@ generate the default snippets. The following example shows a +[[boot-features-testing-spring-boot-applications-testing-autoconfigured-rest-docs-web-test-client]] +===== Auto-configured Spring REST Docs Tests with WebTestClient +`@AutoConfigureRestDocs` can also be used with `WebTestClient`. You can inject it by using +`@Autowired` and use it in your tests as you normally would when using `@WebFluxTest` and +Spring REST Docs, as shown in the following example: + +[source,java,indent=0] +---- +include::{code-examples}/test/autoconfigure/restdocs/webclient/UsersDocumentationTests.java[tag=source] +---- + +If you require more control over Spring REST Docs configuration than offered by the +attributes of `@AutoConfigureRestDocs`, you can use a +`RestDocsWebTestClientConfigurationCustomizer` bean, as shown in the following example: + +[source,java,indent=0] +---- +include::{code-examples}/test/autoconfigure/restdocs/webclient/AdvancedConfigurationExample.java[tag=configuration] +---- + + + [[boot-features-testing-spring-boot-applications-testing-autoconfigured-rest-docs-rest-assured]] ===== Auto-configured Spring REST Docs Tests with REST Assured `@AutoConfigureRestDocs` makes a `RequestSpecification` bean, preconfigured to use Spring @@ -7716,25 +7738,7 @@ bean can be used, as shown in the following example: include::{code-examples}/test/autoconfigure/restdocs/restassured/AdvancedConfigurationExample.java[tag=configuration] ---- -[[boot-features-testing-spring-boot-applications-testing-autoconfigured-rest-docs-web-test-client]] -===== Auto-configured Spring REST Docs Tests with WebTestClient -`@AutoConfigureRestDocs` could be used in conjunction with a `@WebFluxTest` to generate REST Docs. -`@AutoConfigureRestDocs` customizes the `WebTestClient` bean to use Spring REST Docs. You can -inject it by using `@Autowired` and use it in your tests. Here is a quick sample: - -[source,java,indent=0] ----- -include::{code-examples}/test/autoconfigure/restdocs/webclient/UsersDocumentationTests.java[tag=source] ----- - -If you require more control over Spring REST Docs configuration than offered by the -attributes of `@AutoConfigureRestDocs`, you can use a -`RestDocsWebTestClientConfigurationCustomizer` bean, as shown in the following example: -[source,java,indent=0] ----- -include::{code-examples}/test/autoconfigure/restdocs/webclient/AdvancedRestDocsWebTestClientConfigurationExample.java[tag=configuration] ----- [[boot-features-testing-spring-boot-applications-testing-auto-configured-additional-auto-config]] ==== Additional Auto-configuration and Slicing diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/test/autoconfigure/restdocs/webclient/AdvancedRestDocsWebTestClientConfigurationExample.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/test/autoconfigure/restdocs/webclient/AdvancedConfigurationExample.java similarity index 92% rename from spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/test/autoconfigure/restdocs/webclient/AdvancedRestDocsWebTestClientConfigurationExample.java rename to spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/test/autoconfigure/restdocs/webclient/AdvancedConfigurationExample.java index f3b0b50001..4b10ed4333 100644 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/test/autoconfigure/restdocs/webclient/AdvancedRestDocsWebTestClientConfigurationExample.java +++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/test/autoconfigure/restdocs/webclient/AdvancedConfigurationExample.java @@ -13,17 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.boot.docs.test.autoconfigure.restdocs.webclient; import org.springframework.boot.test.autoconfigure.restdocs.RestDocsWebTestClientConfigurationCustomizer; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.restdocs.webtestclient.WebTestClientRestDocumentationConfigurer; -public class AdvancedRestDocsWebTestClientConfigurationExample { +public class AdvancedConfigurationExample { // tag::configuration[] @TestConfiguration - static class CustomizationConfiguration + public static class CustomizationConfiguration implements RestDocsWebTestClientConfigurationCustomizer { @Override diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/test/autoconfigure/restdocs/webclient/UsersDocumentationTests.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/test/autoconfigure/restdocs/webclient/UsersDocumentationTests.java index 374f5bed42..7b94a6d9a3 100644 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/test/autoconfigure/restdocs/webclient/UsersDocumentationTests.java +++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/test/autoconfigure/restdocs/webclient/UsersDocumentationTests.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.boot.docs.test.autoconfigure.restdocs.webclient; // tag::source[] - import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; @@ -40,7 +40,6 @@ public class UsersDocumentationTests { void listUsers() { this.webTestClient.get().uri("/").exchange().expectStatus().isOk().expectBody() .consumeWith(document("list-users")); - } }