This version is still in development and is not considered stable yet. For the latest stable version, please use Spring Framework 6.1.11! |
Overview
You can write plain unit tests for Spring MVC by instantiating a controller, injecting it
with dependencies, and calling its methods. However such tests do not verify request
mappings, data binding, message conversion, type conversion, validation, and nor
do they involve any of the supporting @InitBinder
, @ModelAttribute
, or
@ExceptionHandler
methods.
MockMvc
aims to provide more complete testing for Spring MVC controllers without a
running server. It does that by invoking the DispatcherServlet
and passing
“mock” implementations of the Servlet API from the
spring-test
module which replicates the full Spring MVC request handling without
a running server.
MockMvc is a server side test framework that lets you verify most of the functionality
of a Spring MVC application using lightweight and targeted tests. You can use it on
its own to perform requests and to verify responses using Hamcrest, or through
MockMvcTester
that provides a fluent API using AssertJ. Finally, you can also use it
through the WebTestClient API with MockMvc plugged in
as the server to handle requests with.