You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.7 KiB
29 lines
1.7 KiB
[[mockmvc-server-setup-options]] |
|
= Setup Options |
|
|
|
MockMvc can be setup in one of two ways. One is to point directly to the controllers you |
|
want to test and programmatically configure Spring MVC infrastructure. The second is to |
|
point to Spring configuration with Spring MVC and controller infrastructure in it. |
|
|
|
Which setup option should you use? |
|
|
|
The use of an `ApplicationContext` loads your actual Spring MVC configuration, resulting |
|
The `WebApplicationContext`-based test loads your actual Spring MVC configuration, |
|
resulting in a more complete integration test. Since the TestContext framework caches |
|
the loaded Spring configuration, it helps keep tests running fast, even as you introduce |
|
more tests in your test suite using the same configuration. Furthermore, you can |
|
override services used by your controller using `@MockitoBean` to remain focused on |
|
testing the web layer. |
|
|
|
The standalone test, on the other hand, is a little closer to a unit test. It tests one |
|
controller at a time. You can manually inject the controller with mock dependencies, and |
|
it does not involve loading Spring configuration. Such tests are more focused on style |
|
and make it easier to see which controller is being tested, whether any specific Spring |
|
MVC configuration is required to work, and so on. The standalone setup is also a very |
|
convenient way to write ad-hoc tests to verify specific behavior or to debug an issue. |
|
|
|
As with most "`integration versus unit testing`" debates, there is no right or wrong |
|
answer. However, using standalone tests does imply the need for additional integration |
|
tests to verify your Spring MVC configuration. Alternatively, you can write all your |
|
tests with a `WebApplicationContext`, so that they always test against your actual Spring |
|
MVC configuration.
|
|
|