MockMvc

MockMvc provides support for testing Spring MVC applications. It performs full Spring MVC request handling but via mock request and response objects instead of a running server.

MockMvc can be used on its own to perform requests and verify responses using Hamcrest or through MockMvcTester which provides a fluent API using AssertJ. It can also be used through the WebTestClient where MockMvc is plugged in as the server to handle requests. The advantage of using WebTestClient is that it provides you the option of working with higher level objects instead of raw data as well as the ability to switch to full, end-to-end HTTP tests against a live server and use the same test API.