public interface WebTestClient
WebClient
を使用してリクエストを実行し、レスポンスを検証するための流れるような API を提供します。WebTestClient
は、HTTP 接続を介して任意のサーバーに接続できます。また、HTTP サーバーを必要とせずに、モックリクエストおよびレスポンスオブジェクトを使用して WebFlux アプリケーションに直接バインドすることもできます。
インスタンスの作成については、静的 bindToXxx
エントリポイントを参照してください。
警告 : WebTestClient
は、Kotlin 1.3 で修正される予定の型推論の課題のため、Kotlin ではまだ使用できません。SPR-16057 で最新情報を見ることができます。一方、提案された代替案は、WebClient
とその Reactor および Spring Kotlin 拡張機能を直接使用して、組み込み 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 java.lang.String | WEBTESTCLIENT_REQUEST_ID WebTestClient を介して実行されるすべてのリクエストに一意の ID を割り当てるために使用されるリクエストヘッダーの名前。 |
static final java.lang.String 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(java.lang.Object... 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();