public interface MockMvcWebTestClientMockMvc を使用して WebTestClient を介して Spring MVC アプリケーションをテストするためのメインクラス。WebTestClient が接続する MockMvc を初期化するための静的ファクトリメソッドと仕様を提供します。例:
WebTestClient client = MockMvcWebTestClient.bindToController(myController)
.controllerAdvice(myControllerAdvice)
.validator(myValidator)
.build()
クライアント自体も構成できます。例:
WebTestClient client = MockMvcWebTestClient.bindToController(myController)
.validator(myValidator)
.configureClient()
.baseUrl("/path")
.build();
| 修飾子と型 | インターフェースと説明 |
|---|---|
static interface | MockMvcWebTestClient.ControllerSpec1 つ以上のコントローラーを直接テストするように MockMvc を構成するための仕様、および StandaloneMockMvcBuilder の周囲の単純なファサード。 |
static interface | MockMvcWebTestClient.MockMvcServerSpec<B extends MockMvcWebTestClient.MockMvcServerSpec<B>>MockMvc を構成するための基本仕様、および ConfigurableMockMvcBuilder 周辺の単純なファサード。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
static WebTestClient.Builder | bindTo(MockMvc mockMvc) サーバーとして使用するために、すでに初期化された MockMvc インスタンスを提供することにより、WebTestClient の作成を開始します。 |
static MockMvcWebTestClient.MockMvcServerSpec<?> | bindToApplicationContext(WebApplicationContext context)Spring MVC インフラストラクチャーとコントローラーを WebApplicationContext に提供することにより、WebTestClient の作成を開始します。 |
static MockMvcWebTestClient.ControllerSpec | bindToController(ObjectSE... controllers) リクエストを処理するための @Controller インスタンスを提供することにより、WebTestClient の作成を開始します。 |
static ResultActions | resultActionsFor(ExchangeResult exchangeResult) このメソッドを使用して、サーバーレスポンスの状態に基づいて、特定の ExchangeResult にさらにアサーションを適用できます。 |
static MockMvcWebTestClient.ControllerSpec bindToController(ObjectSE... controllers)
@Controller インスタンスを提供することにより、WebTestClient の作成を開始します。 内部的には、これは MockMvcBuilders.standaloneSetup(Object...) の使用に委譲され、同等です。MockMvc を初期化します。
static MockMvcWebTestClient.MockMvcServerSpec<?> bindToApplicationContext(WebApplicationContext context)
WebApplicationContext に提供することにより、WebTestClient の作成を開始します。 内部的には、これは MockMvcBuilders.webAppContextSetup(WebApplicationContext) を使用して MockMvc を初期化することに委譲され、同等です。
static WebTestClient.Builder bindTo(MockMvc mockMvc)
MockMvc インスタンスを提供することにより、WebTestClient の作成を開始します。static ResultActions resultActionsFor(ExchangeResult exchangeResult)
ExchangeResult にさらにアサーションを適用できます。 通常、WebTestClient は、HTTP ステータス、ヘッダー、本文などのクライアントレスポンスをアサートするために使用されます。HTTP 経由でライブリクエストを行うときに利用できるのはこれだけです。ただし、サーバーが MockMvc の場合、サーバーのレスポンスに対してさらに多くのアサーションが可能です。モデル属性、フラッシュ属性など。
例:
EntityExchangeResult<Void> result =
webTestClient.post().uri("/people/123")
.exchange()
.expectStatus().isFound()
.expectHeader().location("/persons/Joe")
.expectBody().isEmpty();
MockMvcWebTestClient.resultActionsFor(result)
.andExpect(model().size(1))
.andExpect(model().attributeExists("name"))
.andExpect(flash().attributeCount(1))
.andExpect(flash().attribute("message", "success!"));
メモ: このメソッドは、リクエストの実行に使用される WebTestClient がこのクラスのバインドメソッドの 1 つを介して初期化された場合にのみ機能するため、リクエストは MockMvc によって処理されます。