public interface WebTestClient
WebClient internally to
 perform requests while also providing a fluent API to verify responses.
 This client can connect to any server over HTTP, or to a WebFlux application
 via mock request and response objects.
 Use one of the bindToXxx methods to create an instance. For example:
bindToController(Object...)
 bindToRouterFunction(RouterFunction)
 bindToApplicationContext(ApplicationContext)
 bindToServer()
 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
 gh-20606
 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 set up 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  @Controllerat 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 live server through
 a Reactor Netty client connector. | 
| 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)
@Controller at a time.
 This option loads the default configuration of
 @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 test
 (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.