@Documented @Inherited @BootstrapWith (org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTestContextBootstrapper.class) @ExtendWith( org.springframework.test.context.junit.jupiter.SpringExtension.class ) @OverrideAutoConfiguration ( enabled =false) @TypeExcludeFilters ( WebMvcTypeExcludeFilter.class ) @AutoConfigureCache @AutoConfigureWebMvc @AutoConfigureMockMvc @ImportAutoConfiguration public @interface WebMvcTest
Annotation that can be used for a Spring MVC test that focuses only on Spring MVC components. 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) .

Since:
1.4.0
Author:
Phillip Webb, Artsiom Yudovin
See Also:
  • AutoConfigureWebMvc
  • AutoConfigureMockMvc
  • AutoConfigureCache
  • Auto-configuration exclusions that should be applied for this test.
    A set of exclude filters which can be used to filter beans that would otherwise be added to the application context.
    A set of include filters which can be used to add otherwise filtered beans to the application context.
    Properties in form key=value that should be added to the Spring Environment before the test runs.
    boolean
    Determines if default filtering should be used with @SpringBootApplication .
    Class <?>[]
    Specifies the controllers to test.

    properties

    String [] properties
    Properties in form key=value that should be added to the Spring Environment before the test runs.
    Returns:
    the properties to add
    Since:
    2.1.0
    Default:
    @AliasFor ("controllers") Class <?>[] value
    Specifies the controllers to test. This is an alias of controllers() which can be used for brevity if no other attributes are defined. See controllers() for details.
    Returns:
    the controllers to test
    See Also:
  • controllers()
  • @AliasFor ("value") Class <?>[] controllers
    Specifies the controllers to test. May be left blank if all @Controller beans should be added to the application context.
    Returns:
    the controllers to test
    See Also:
  • value()
  • useDefaultFilters

    boolean useDefaultFilters
    Determines if default filtering should be used with @SpringBootApplication . By default only @Controller (when no explicit controllers are defined), @ControllerAdvice and WebMvcConfigurer beans are included.
    Returns:
    if default filters should be used
    See Also:
  • includeFilters()
  • excludeFilters()
  • includeFilters

    ComponentScan.Filter [] includeFilters
    A set of include filters which can be used to add otherwise filtered beans to the application context.
    Returns:
    include filters to apply
    Default:

    excludeFilters

    ComponentScan.Filter [] excludeFilters
    A set of exclude filters which can be used to filter beans that would otherwise be added to the application context.
    Returns:
    exclude filters to apply
    Default:

    excludeAutoConfiguration

    Auto-configuration exclusions that should be applied for this test.
    Returns:
    auto-configuration exclusions to apply
    Default: