public interface WebTestClient
WebClient
を使用してリクエストを実行する一方で、レスポンスを検証する流れるような API を提供する Web サーバーをテストするためのクライアント。このクライアントは、HTTP 経由で任意のサーバーに接続するか、モックリクエストおよびレスポンスオブジェクトを介して WebFlux アプリケーションに接続できます。bindToXxx メソッドのいずれかを使用して、インスタンスを作成します。例:
bindToController(Object...)
bindToRouterFunction(RouterFunction)
bindToApplicationContext(ApplicationContext)
bindToServer()
警告 :Kotlin 1.3 で修正される予定の型推論の課題により、Kotlin では WebTestClient
はまだ使用できません。最新の情報については、gh-20606 を参照してください。一方、提案された代替案は、Reactor および Spring Kotlin 拡張機能を備えた WebClient
を直接使用して、組み込み WebFlux サーバーで統合テストを実行することです。
StatusAssertions
, HeaderAssertions
, JsonPathAssertions
修飾子と型 | インターフェースと説明 |
---|---|
static interface | WebTestClient.BodyContentSpec レスポンス本文の内容に対する期待の仕様。 |
static interface | WebTestClient.BodySpec<B, S extends WebTestClient.BodySpec<B, S>> 単一のオブジェクトにデコードされたレスポンス本文に対する期待の仕様。 |
static interface | WebTestClient.Builder テストに使用する WebClient をカスタマイズする手順。内部で WebClient.Builder に委譲します。 |
static interface | WebTestClient.ControllerSpec WebFluxConfigurer と同等で内部的に委譲するコントローラー構成をカスタマイズするための仕様。 |
static interface | WebTestClient.ListBodySpec<E> リストにデコードされたレスポンス本文に対する期待の仕様。 |
static interface | WebTestClient.MockServerSpec<B extends WebTestClient.MockServerSpec<B>> サーバーなしでテストをセットアップするための基本仕様。 |
static interface | WebTestClient.RequestBodySpec リクエストの本文を提供するための仕様。 |
static interface | WebTestClient.RequestBodyUriSpec リクエストの本文と URI を提供するための仕様。 |
static interface | WebTestClient.RequestHeadersSpec<S extends WebTestClient.RequestHeadersSpec<S>> リクエストヘッダーを追加し、交換を実行するための仕様。 |
static interface | WebTestClient.RequestHeadersUriSpec<S extends WebTestClient.RequestHeadersSpec<S>> リクエストヘッダーとリクエストの URI を提供するための仕様。 |
static interface | WebTestClient.ResponseSpec アサーションをレスポンスに適用するための連鎖 API。 |
static interface | WebTestClient.RouterFunctionSpec ルーター関数の構成をカスタマイズするための仕様。 |
static interface | WebTestClient.UriSpec<S extends WebTestClient.RequestHeadersSpec<?>> リクエストの URI を提供するための仕様。 |
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | WEBTESTCLIENT_REQUEST_ID WebTestClient を介して実行されるすべてのリクエストに一意の ID を割り当てるために使用されるリクエストヘッダーの名前。 |
static final StringSE WEBTESTCLIENT_REQUEST_ID
WebTestClient
を介して実行されるすべてのリクエストに一意の ID を割り当てるために使用されるリクエストヘッダーの名前。これは、その ID で(たとえばサーバー側コンポーネントからの)リクエスト処理のすべての段階でコンテキスト情報を保存し、ExchangeResult
が利用可能になったときにその情報を検索できます。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
を変更し、指定された設定プログラムを適用して、新しいインスタンスを作成します。基本的には次のショートカットです。mutate().apply(configurer).build();
configurer
- 適用するコンフィギュレーター static WebTestClient.ControllerSpec bindToController(ObjectSE... controllers)
@EnableWebFlux
のデフォルト構成をロードします。Java 構成をカスタマイズするためのビルダーメソッドがあります。結果の WebFlux アプリケーションは、モックリクエストとレスポンスを使用して HTTP サーバーなしでテストされます。controllers
- テストする 1 つ以上のコントローラーインスタンス (指定された Class
はインスタンスに変換されます)WebTestClient.MockServerSpec.configureClient()
を使用してクライアント構成に移行する static WebTestClient.RouterFunctionSpec bindToRouterFunction(RouterFunction<?> routerFunction)
RouterFunction
からサーバーをセットアップします。内部的には、提供された構成が RouterFunctions#toWebHandler
に渡されます。結果の WebFlux アプリケーションは、モックリクエストとレスポンスを使用して、HTTP サーバーなしでテストされます。routerFunction
- テストする RouterFunctionWebTestClient.MockServerSpec.configureClient()
を使用してクライアント構成に移行する static WebTestClient.MockServerSpec<?> bindToApplicationContext(ApplicationContext applicationContext)
WebHttpHandlerBuilder
に渡され、チェーンを処理するリクエストがセットアップされます。結果の WebFlux アプリケーションは、モックリクエストとレスポンスを使用して、HTTP サーバーなしでテストされます。Spring 構成をテストクラスに効率的にロードして挿入するために、TestContext フレームワークと @ContextConfiguration
の使用を検討してください。
applicationContext
- Spring コンテキスト WebTestClient.MockServerSpec.configureClient()
を使用してクライアント構成に移行する static WebTestClient.MockServerSpec<?> bindToWebHandler(WebHandler webHandler)
webHandler
- テストするハンドラー WebTestClient.MockServerSpec.configureClient()
を使用してクライアント構成に移行する static WebTestClient.Builder bindToServer()
WebTestClient client = WebTestClient.bindToServer() .baseUrl("http://localhost:8080") .build();
static WebTestClient.Builder bindToServer(ClientHttpConnector connector)
bindToServer()
のバリアント。WebTestClient client = WebTestClient.bindToServer() .baseUrl("http://localhost:8080") .build();