@Target(value=TYPE) @Retention(value=RUNTIME) @Documented @Inherited @BootstrapWith(value=org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTestContextBootstrapper.class) @ExtendWith(value=org.springframework.test.context.junit.jupiter.SpringExtension.class) @OverrideAutoConfiguration(enabled=false) @TypeExcludeFilters(value=WebMvcTypeExcludeFilter.class) @AutoConfigureCache @AutoConfigureWebMvc @AutoConfigureMockMvc @ImportAutoConfiguration public @interface WebMvcTest
 Using this annotation will disable full auto-configuration and instead apply only
 configuration relevant to MVC tests (i.e. @Controller,
 @ControllerAdvice, @JsonComponent,
 Converter/GenericConverter, Filter, WebMvcConfigurer
 and HandlerMethodArgumentResolver beans but not @Component,
 @Service or @Repository beans).
 
 By default, tests annotated with @WebMvcTest will also auto-configure Spring
 Security and MockMvc (include support for HtmlUnit WebClient and Selenium
 WebDriver). For more fine-grained control of MockMVC the
 @AutoConfigureMockMvc annotation can be used.
 
 Typically @WebMvcTest is used in combination with
 @MockBean or
 @Import to create any collaborators required by your @Controller
 beans.
 
 If you are looking to load your full application configuration and use MockMVC, you
 should consider @SpringBootTest combined with
 @AutoConfigureMockMvc rather than this annotation.
 
 When using JUnit 4, this annotation should be used in combination with
 @RunWith(SpringRunner.class).
AutoConfigureWebMvc, 
AutoConfigureMockMvc, 
AutoConfigureCache| Modifier and Type | Optional Element and Description | 
|---|---|
| Class<?>[] | controllersSpecifies the controllers to test. | 
| Class<?>[] | excludeAutoConfigurationAuto-configuration exclusions that should be applied for this test. | 
| ComponentScan.Filter[] | excludeFiltersA set of exclude filters which can be used to filter beans that would otherwise be
 added to the application context. | 
| ComponentScan.Filter[] | includeFiltersA set of include filters which can be used to add otherwise filtered beans to the
 application context. | 
| String[] | propertiesProperties in form key=value that should be added to the Spring
  Environmentbefore the test runs. | 
| boolean | useDefaultFiltersDetermines if default filtering should be used with
  @SpringBootApplication. | 
| Class<?>[] | valueSpecifies the controllers to test. | 
public abstract String[] properties
Environment before the test runs.@AliasFor(value="controllers") public abstract Class<?>[] value
controllers() which
 can be used for brevity if no other attributes are defined. See
 controllers() for details.controllers()public abstract boolean useDefaultFilters
@SpringBootApplication. By default only
 @Controller (when no explicit controllers are
 defined), @ControllerAdvice and WebMvcConfigurer beans are
 included.includeFilters(), 
excludeFilters()public abstract ComponentScan.Filter[] includeFilters
public abstract ComponentScan.Filter[] excludeFilters
@AliasFor(annotation=ImportAutoConfiguration.class, attribute="exclude") public abstract Class<?>[] excludeAutoConfiguration