parent
4782c697b8
commit
c769f43b3e
|
@ -1,10 +1,26 @@
|
||||||
[[spring-mvc-test-client]]
|
[[spring-mvc-test-client]]
|
||||||
= Testing Client Applications
|
= Testing Client Applications
|
||||||
|
|
||||||
You can use client-side tests to test code that internally uses the `RestTemplate`. The
|
To test code that uses the `RestClient` or `RestTemplate`, you can use a mock web server, such as
|
||||||
idea is to declare expected requests and to provide "`stub`" responses so that you can
|
https://github.com/square/okhttp#mockwebserver[OkHttp MockWebServer] or
|
||||||
focus on testing the code in isolation (that is, without running a server). The following
|
https://wiremock.org/[WireMock]. Mock web servers accept requests over HTTP like a regular
|
||||||
example shows how to do so:
|
server, and that means you can test with the same HTTP client that is also configured in
|
||||||
|
the same way as in production, which is important because there are often subtle
|
||||||
|
differences in the way different clients handle network I/O. Another advantage of mock
|
||||||
|
web servers is the ability to simulate specific network issues and conditions at the
|
||||||
|
transport level, in combination with the client used in production.
|
||||||
|
|
||||||
|
In addition to dedicated mock web servers, historically the Spring Framework has provided
|
||||||
|
a built-in option to test `RestClient` or `RestTemplate` through `MockRestServiceServer`.
|
||||||
|
This relies on configuring the client under test with a custom `ClientHttpRequestFactory`
|
||||||
|
backed by the mock server that is in turn set up to expect requests and send "`stub`"
|
||||||
|
responses so that you can focus on testing the code in isolation, without running a server.
|
||||||
|
|
||||||
|
TIP: `MockRestServiceServer` predates the existence of mock web servers. At present, we
|
||||||
|
recommend using mock web servers for more complete testing of the transport layer and
|
||||||
|
network conditions.
|
||||||
|
|
||||||
|
The following example shows an example of using `MockRestServiceServer`:
|
||||||
|
|
||||||
[tabs]
|
[tabs]
|
||||||
======
|
======
|
||||||
|
|
|
@ -2,9 +2,16 @@
|
||||||
= Testing
|
= Testing
|
||||||
:page-section-summary-toc: 1
|
:page-section-summary-toc: 1
|
||||||
|
|
||||||
To test code that uses the `WebClient`, you can use a mock web server, such as the
|
To test code that uses the `WebClient`, you can use a mock web server, such as
|
||||||
https://github.com/square/okhttp#mockwebserver[OkHttp MockWebServer]. To see an example
|
https://github.com/square/okhttp#mockwebserver[OkHttp MockWebServer] or
|
||||||
of its use, check out
|
https://wiremock.org/[WireMock]. Mock web servers accept requests over HTTP like a regular
|
||||||
|
server, and that means you can test with the same HTTP client that is also configured in
|
||||||
|
the same way as in production, which is important because there are often subtle
|
||||||
|
differences in the way different clients handle network I/O. Another advantage of mock
|
||||||
|
web servers is the ability to simulate specific network issues and conditions at the
|
||||||
|
transport level, in combination with the client used in production.
|
||||||
|
|
||||||
|
For example use of MockWebServer, see
|
||||||
{spring-framework-code}/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientIntegrationTests.java[`WebClientIntegrationTests`]
|
{spring-framework-code}/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientIntegrationTests.java[`WebClientIntegrationTests`]
|
||||||
in the Spring Framework test suite or the
|
in the Spring Framework test suite or the
|
||||||
https://github.com/square/okhttp/tree/master/samples/static-server[`static-server`]
|
https://github.com/square/okhttp/tree/master/samples/static-server[`static-server`]
|
||||||
|
|
Loading…
Reference in New Issue