public interface WebTestClient
WebClient internally to perform requests and provides a fluent API
 to verify responses.
 WebTestClient can connect to any server over an HTTP connection.
 It can also bind directly to WebFlux applications using mock request and
 response objects, without the need for an HTTP server.
 
See the static bindToXxx entry points for creating an instance.
 
Warning: WebTestClient is not usable yet in Kotlin due to a
 type inference issue which is
 expected to be fixed as of Kotlin 1.3. You can watch
 SPR-16057 for up-to-date information.
 Meanwhile, the proposed alternative is to use directly WebClient with its Reactor
 and Spring Kotlin extensions to perform integration tests on an embedded WebFlux server.
StatusAssertions, 
HeaderAssertions, 
JsonPathAssertions| Modifier and Type | Interface and Description | 
|---|---|
| static interface  | WebTestClient.BodyContentSpecSpec for expectations on the response body content. | 
| static interface  | WebTestClient.BodySpec<B,S extends WebTestClient.BodySpec<B,S>>Spec for expectations on the response body decoded to a single Object. | 
| static interface  | WebTestClient.BuilderSteps for customizing the  WebClientused to test with,
 internally delegating to aWebClient.Builder. | 
| static interface  | WebTestClient.ControllerSpecSpecification for customizing controller configuration equivalent to, and
 internally delegating to, a  WebFluxConfigurer. | 
| static interface  | WebTestClient.ListBodySpec<E>Spec for expectations on the response body decoded to a List. | 
| static interface  | WebTestClient.MockServerSpec<B extends WebTestClient.MockServerSpec<B>>Base specification for setting up tests without a server. | 
| static interface  | WebTestClient.RequestBodySpecSpecification for providing body of a request. | 
| static interface  | WebTestClient.RequestBodyUriSpecSpecification for providing the body and the URI of a request. | 
| static interface  | WebTestClient.RequestHeadersSpec<S extends WebTestClient.RequestHeadersSpec<S>>Specification for adding request headers and performing an exchange. | 
| static interface  | WebTestClient.RequestHeadersUriSpec<S extends WebTestClient.RequestHeadersSpec<S>>Specification for providing request headers and the URI of a request. | 
| static interface  | WebTestClient.ResponseSpecChained API for applying assertions to a response. | 
| static interface  | WebTestClient.RouterFunctionSpecSpecification for customizing router function configuration. | 
| static interface  | WebTestClient.UriSpec<S extends WebTestClient.RequestHeadersSpec<?>>Specification for providing the URI of a request. | 
| Modifier and Type | Field and Description | 
|---|---|
| static String | WEBTESTCLIENT_REQUEST_IDThe name of a request header used to assign a unique id to every request
 performed through the  WebTestClient. | 
| Modifier and Type | Method and Description | 
|---|---|
| static WebTestClient.MockServerSpec<?> | bindToApplicationContext(ApplicationContext applicationContext)Use this option to setup a server from the Spring configuration of your
 application, or some subset of it. | 
| static WebTestClient.ControllerSpec | bindToController(Object... controllers)Use this server setup to test one `@Controller` at a time. | 
| static WebTestClient.RouterFunctionSpec | bindToRouterFunction(RouterFunction<?> routerFunction)Use this option to set up a server from a  RouterFunction. | 
| static WebTestClient.Builder | bindToServer()This server setup option allows you to connect to a running server via
 Reactor Netty. | 
| static WebTestClient.Builder | bindToServer(ClientHttpConnector connector)A variant of  bindToServer()with a pre-configured connector. | 
| static WebTestClient.MockServerSpec<?> | bindToWebHandler(WebHandler webHandler)Integration testing with a "mock" server targeting the given WebHandler. | 
| WebTestClient.RequestHeadersUriSpec<?> | delete()Prepare an HTTP DELETE request. | 
| WebTestClient.RequestHeadersUriSpec<?> | get()Prepare an HTTP GET request. | 
| WebTestClient.RequestHeadersUriSpec<?> | head()Prepare an HTTP HEAD request. | 
| WebTestClient.RequestBodyUriSpec | method(HttpMethod method)Prepare a request for the specified  HttpMethod. | 
| WebTestClient.Builder | mutate()Return a builder to mutate properties of this web test client. | 
| WebTestClient | mutateWith(WebTestClientConfigurer configurer)Mutate the  WebTestClient, apply the given configurer, and build
 a new instance. | 
| WebTestClient.RequestHeadersUriSpec<?> | options()Prepare an HTTP OPTIONS request. | 
| WebTestClient.RequestBodyUriSpec | patch()Prepare an HTTP PATCH request. | 
| WebTestClient.RequestBodyUriSpec | post()Prepare an HTTP POST request. | 
| WebTestClient.RequestBodyUriSpec | put()Prepare an HTTP PUT request. | 
static final String WEBTESTCLIENT_REQUEST_ID
WebTestClient. This can be useful for
 storing contextual information at all phases of request processing (e.g.
 from a server-side component) under that id and later to look up
 that information once an ExchangeResult is available.WebTestClient.RequestHeadersUriSpec<?> get()
WebTestClient.RequestHeadersUriSpec<?> head()
WebTestClient.RequestBodyUriSpec post()
WebTestClient.RequestBodyUriSpec put()
WebTestClient.RequestBodyUriSpec patch()
WebTestClient.RequestHeadersUriSpec<?> delete()
WebTestClient.RequestHeadersUriSpec<?> options()
WebTestClient.RequestBodyUriSpec method(HttpMethod method)
HttpMethod.WebTestClient.Builder mutate()
WebTestClient mutateWith(WebTestClientConfigurer configurer)
WebTestClient, apply the given configurer, and build
 a new instance. Essentially a shortcut for:
 mutate().apply(configurer).build();
configurer - the configurer to applystatic WebTestClient.ControllerSpec bindToController(Object... controllers)
@EnableWebFlux.
 There are builder methods to customize the Java config. The resulting
 WebFlux application will be tested without an HTTP server using a mock
 request and response.controllers - one or more controller instances to tests
 (specified Class will be turned into instance)WebTestClient.MockServerSpec.configureClient() to transition to client configstatic WebTestClient.RouterFunctionSpec bindToRouterFunction(RouterFunction<?> routerFunction)
RouterFunction.
 Internally the provided configuration is passed to
 RouterFunctions#toWebHandler. The resulting WebFlux application
 will be tested without an HTTP server using a mock request and response.routerFunction - the RouterFunction to testWebTestClient.MockServerSpec.configureClient() to transition to client configstatic WebTestClient.MockServerSpec<?> bindToApplicationContext(ApplicationContext applicationContext)
WebHttpHandlerBuilder to set up the request
 processing chain. The resulting WebFlux application will be tested
 without an HTTP server using a mock request and response.
 Consider using the TestContext framework and
 @ContextConfiguration
 in order to efficiently load and inject the Spring configuration into the
 test class.
applicationContext - the Spring contextWebTestClient.MockServerSpec.configureClient() to transition to client configstatic WebTestClient.MockServerSpec<?> bindToWebHandler(WebHandler webHandler)
webHandler - the handler to testWebTestClient.MockServerSpec.configureClient() to transition to client configstatic WebTestClient.Builder bindToServer()
 WebTestClient client = WebTestClient.bindToServer()
         .baseUrl("http://localhost:8080")
         .build();
 static WebTestClient.Builder bindToServer(ClientHttpConnector connector)
bindToServer() with a pre-configured connector.
 
 WebTestClient client = WebTestClient.bindToServer()
         .baseUrl("http://localhost:8080")
         .build();