概要
コントローラーをインスタンス化し、それに依存関係を注入し、そのメソッドを呼び出すことで、Spring MVC の単純な単体テストを作成できます。ただし、このようなテストでは、リクエストマッピング、データバインディング、メッセージ変換、型変換、検証は検証されず、サポートされる @InitBinder
、@ModelAttribute
、または @ExceptionHandler
メソッドも使用されません。
MockMvc
は、実行中のサーバーなしで、Spring MVC コントローラーのより完全なテストサポートを提供することを目的としています。これは、DispatcherServlet
を呼び出し、実行中のサーバーなしで完全な Spring MVC リクエスト処理を複製する spring-test
モジュールからサーブレット API の「モック」実装を渡すことによって実現されます。
MockMvc は、軽量でターゲットを絞ったテストを使用して、Spring MVC アプリケーションのほとんどの機能を検証できるサーバー側テストフレームワークです。これを単独で使用して、Hamcrest を使用してリクエストを実行し、レスポンスを検証したり、AssertJ を使用して流れるような API を提供する MockMvcTester
を介して使用したりできます。また、リクエストを処理するサーバーとして MockMvc をプラグインして、WebTestClient API を介して使用することもできます。