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