From f57828708a55bc3c45836d986d52ce6b16fd923c Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Wed, 30 Jul 2025 07:04:19 +0100 Subject: [PATCH] Polishing in RestTestClient tests See gh-34428 --- .../client/{samples => }/RestTestClientTests.java | 12 ++++++++++-- .../web/servlet/client/samples/ApiVersionTests.java | 2 +- .../test/web/servlet/client/samples/ErrorTests.java | 3 ++- .../servlet/client/samples/HeaderAndCookieTests.java | 4 +++- .../web/servlet/client/samples/JsonContentTests.java | 8 +++++--- .../servlet/client/samples/ResponseEntityTests.java | 4 +++- .../servlet/client/samples/SoftAssertionTests.java | 2 +- .../web/servlet/client/samples/XmlContentTests.java | 3 ++- .../client/samples/bind/ApplicationContextTests.java | 4 ++++ .../web/servlet/client/samples/bind/FilterTests.java | 3 +-- .../servlet/client/samples/bind/HttpServerTests.java | 1 + .../client/samples/bind/RouterFunctionTests.java | 9 +++------ 12 files changed, 36 insertions(+), 19 deletions(-) rename spring-test/src/test/java/org/springframework/test/web/servlet/client/{samples => }/RestTestClientTests.java (98%) diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/RestTestClientTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/client/RestTestClientTests.java similarity index 98% rename from spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/RestTestClientTests.java rename to spring-test/src/test/java/org/springframework/test/web/servlet/client/RestTestClientTests.java index af1be6b11bc..6c72769348f 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/RestTestClientTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/client/RestTestClientTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.test.web.servlet.client.samples; +package org.springframework.test.web.servlet.client; import java.net.URI; import java.nio.charset.StandardCharsets; @@ -36,7 +36,6 @@ import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; -import org.springframework.test.web.servlet.client.RestTestClient; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -51,11 +50,13 @@ class RestTestClientTests { private RestTestClient client; + @BeforeEach void setUp() { this.client = RestTestClient.bindToController(new TestController()).build(); } + @Nested class HttpMethods { @@ -127,6 +128,7 @@ class RestTestClientTests { } + @Nested class Mutation { @@ -149,6 +151,7 @@ class RestTestClientTests { } } + @Nested class Uris { @@ -193,6 +196,7 @@ class RestTestClientTests { } } + @Nested class Cookies { @Test @@ -214,6 +218,7 @@ class RestTestClientTests { } } + @Nested class Headers { @Test @@ -271,6 +276,7 @@ class RestTestClientTests { } } + @Nested class Expectations { @Test @@ -281,6 +287,7 @@ class RestTestClientTests { } } + @Nested class ReturnResults { @Test @@ -312,6 +319,7 @@ class RestTestClientTests { } } + @RestController static class TestController { diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/ApiVersionTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/ApiVersionTests.java index 4ea6e81a1f0..c23d60b8c8b 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/ApiVersionTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/ApiVersionTests.java @@ -94,7 +94,7 @@ public class ApiVersionTests { @RestController - static class TestController { + private static class TestController { private static final String HEADER = "X-API-Version"; diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/ErrorTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/ErrorTests.java index 656da349f85..d35f4b99996 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/ErrorTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/ErrorTests.java @@ -47,8 +47,9 @@ class ErrorTests { .expectStatus().isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR); } + @RestController - static class TestController { + private static class TestController { @GetMapping("/server-error") void handleAndThrowException() { diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/HeaderAndCookieTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/HeaderAndCookieTests.java index 28a3c99cacb..17329742f7d 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/HeaderAndCookieTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/HeaderAndCookieTests.java @@ -36,6 +36,7 @@ class HeaderAndCookieTests { private final RestTestClient client = RestTestClient.bindToController(new TestController()).build(); + @Test void requestResponseHeaderPair() { this.client.get().uri("/header-echo") @@ -61,8 +62,9 @@ class HeaderAndCookieTests { .expectHeader().valueMatches("Set-Cookie", "k1=v1"); } + @RestController - static class TestController { + private static class TestController { @GetMapping("header-echo") ResponseEntity handleHeader(@RequestHeader("h1") String myHeader) { diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/JsonContentTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/JsonContentTests.java index fc035c1e805..58d47dcebc6 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/JsonContentTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/JsonContentTests.java @@ -129,7 +129,7 @@ class JsonContentTests { @RestController @RequestMapping("/persons") - static class PersonController { + private static class PersonController { @GetMapping List getPersons() { @@ -143,11 +143,13 @@ class JsonContentTests { @PostMapping ResponseEntity savePerson(@RequestBody Person person) { - return ResponseEntity.created(URI.create(String.format("/persons/%s/%s", person.getFirstName(), person.getLastName()))).build(); + URI location = URI.create(String.format("/persons/%s/%s", person.getFirstName(), person.getLastName())); + return ResponseEntity.created(location).build(); } } - static class Person { + + private static class Person { private String firstName; private String lastName; diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/ResponseEntityTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/ResponseEntityTests.java index 12596a25936..40dfb6d49f0 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/ResponseEntityTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/ResponseEntityTests.java @@ -43,10 +43,12 @@ import static org.hamcrest.Matchers.startsWith; * @author Rob Worsnop */ class ResponseEntityTests { + private final RestTestClient client = RestTestClient.bindToController(new PersonController()) .baseUrl("/persons") .build(); + @Test void entity() { this.client.get().uri("/John") @@ -126,7 +128,7 @@ class ResponseEntityTests { @RestController @RequestMapping("/persons") - static class PersonController { + private static class PersonController { @GetMapping(path = "/{name}", produces = MediaType.APPLICATION_JSON_VALUE) Person getPerson(@PathVariable String name) { diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/SoftAssertionTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/SoftAssertionTests.java index d13154e857f..d9f141df3b3 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/SoftAssertionTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/SoftAssertionTests.java @@ -61,7 +61,7 @@ class SoftAssertionTests { @RestController - static class TestController { + private static class TestController { @GetMapping("/test") String handle() { diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/XmlContentTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/XmlContentTests.java index f9af1bcaa45..d960406c732 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/XmlContentTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/XmlContentTests.java @@ -172,9 +172,10 @@ class XmlContentTests { } } + @RestController @RequestMapping("/persons") - static class PersonController { + private static class PersonController { @GetMapping(produces = MediaType.APPLICATION_XML_VALUE) PersonsWrapper getPersons() { diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/ApplicationContextTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/ApplicationContextTests.java index e49c223ecca..4829d904e1f 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/ApplicationContextTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/ApplicationContextTests.java @@ -37,17 +37,21 @@ import org.springframework.web.context.WebApplicationContext; class ApplicationContextTests { private RestTestClient client; + private final WebApplicationContext context; + public ApplicationContextTests(WebApplicationContext context) { this.context = context; } + @BeforeEach void setUp() { this.client = RestTestClient.bindToApplicationContext(context).build(); } + @Test void test() { this.client.get().uri("/test") diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/FilterTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/FilterTests.java index fe6bb3d7edd..5be11ab68b2 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/FilterTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/FilterTests.java @@ -21,7 +21,6 @@ import java.util.Optional; import jakarta.servlet.Filter; import jakarta.servlet.FilterChain; -import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpFilter; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -44,7 +43,7 @@ class FilterTests { Filter filter = new HttpFilter() { @Override - protected void doFilter(HttpServletRequest req, HttpServletResponse res, FilterChain chain) throws IOException, ServletException { + protected void doFilter(HttpServletRequest req, HttpServletResponse res, FilterChain chain) throws IOException { res.getWriter().write("It works!"); } }; diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/HttpServerTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/HttpServerTests.java index 12e45899cd8..44c5ef28eef 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/HttpServerTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/HttpServerTests.java @@ -43,6 +43,7 @@ class HttpServerTests { @BeforeEach void start() throws Exception { + HttpHandler httpHandler = RouterFunctions.toHttpHandler( route(GET("/test"), request -> ServerResponse.ok().bodyValue("It works!"))); diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/RouterFunctionTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/RouterFunctionTests.java index c17ef246459..ab0a4ab0133 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/RouterFunctionTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/client/samples/bind/RouterFunctionTests.java @@ -37,16 +37,13 @@ class RouterFunctionTests { @BeforeEach - void setUp() throws Exception { - - RouterFunction route = route(GET("/test"), request -> - ServerResponse.ok().body("It works!")); - + void setUp() { + RouterFunction route = route(GET("/test"), request -> ServerResponse.ok().body("It works!")); this.testClient = RestTestClient.bindToRouterFunction(route).build(); } @Test - void test() throws Exception { + void test() { this.testClient.get().uri("/test") .exchange() .expectStatus().isOk()