インターフェース MockMvcWebTestClient
public interface MockMvcWebTestClient
サーバーリクエスト処理のために
MockMvc を使用して 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();
- 導入:
- 5.3
- 作成者:
- Rossen Stoyanchev
ネストされたクラスの要約
ネストされたクラス修飾子と型インターフェース説明static interface1 つ以上のコントローラーを直接テストするようにMockMvcを構成するための仕様、およびStandaloneMockMvcBuilderの周囲の単純なファサード。static interfaceMockMvcを構成するための基本仕様、およびConfigurableMockMvcBuilder周辺の単純なファサード。static interfaceメソッドのサマリー
静的メソッド修飾子と型メソッド説明static WebTestClient.Builderサーバーとして使用するために、すでに初期化されたMockMvcインスタンスを提供することにより、WebTestClientの作成を開始します。static MockMvcWebTestClient.MockMvcServerSpec<?> Spring MVC インフラストラクチャーとコントローラーをWebApplicationContextに提供することにより、WebTestClientの作成を開始します。bindToController(ObjectSE... controllers) リクエストを処理するための@Controllerインスタンスを提供することにより、WebTestClientの作成を開始します。bindToRouterFunction(RouterFunction<?>... routerFunctions) リクエストを処理するためのRouterFunctionインスタンスを指定して、WebTestClientの作成を開始します。static ResultActionsresultActionsFor(ExchangeResult exchangeResult) このメソッドを使用して、サーバーレスポンスの状態に基づいて、特定のExchangeResultにさらにアサーションを適用できます。
メソッドの詳細
bindToController
リクエストを処理するための@Controllerインスタンスを提供することにより、WebTestClientの作成を開始します。内部的には、これは
MockMvcBuilders.standaloneSetup(Object...)を使用してMockMvcを初期化することに委譲され、それと同等です。bindToRouterFunction
static MockMvcWebTestClient.RouterFunctionSpec bindToRouterFunction(RouterFunction<?>... routerFunctions) リクエストを処理するためのRouterFunctionインスタンスを指定して、WebTestClientの作成を開始します。内部的には、これは
MockMvcBuilders.routerFunctions(RouterFunction[])を使用してMockMvcを初期化することに委譲され、それと同等です。- 導入:
- 6.2
bindToApplicationContext
static MockMvcWebTestClient.MockMvcServerSpec<?> bindToApplicationContext(WebApplicationContext context) Spring MVC インフラストラクチャーとコントローラーをWebApplicationContextに提供することにより、WebTestClientの作成を開始します。内部的には、これは
MockMvcBuilders.webAppContextSetup(WebApplicationContext)を使用してMockMvcを初期化することに委譲され、同等です。bindTo
サーバーとして使用するために、すでに初期化されたMockMvcインスタンスを提供することにより、WebTestClientの作成を開始します。resultActionsFor
このメソッドを使用して、サーバーレスポンスの状態に基づいて、特定の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によって処理されます。