Annotation Type RestClientTest


  • @Target(TYPE)
    @Retention(RUNTIME)
    @Documented
    @Inherited
    @BootstrapWith(org.springframework.boot.test.autoconfigure.web.client.RestClientTestContextBootstrapper.class)
    @ExtendWith(org.springframework.test.context.junit.jupiter.SpringExtension.class)
    @OverrideAutoConfiguration(enabled=false)
    @TypeExcludeFilters(org.springframework.boot.test.autoconfigure.web.client.RestClientExcludeFilter.class)
    @AutoConfigureCache
    @AutoConfigureWebClient
    @AutoConfigureMockRestServiceServer
    @ImportAutoConfiguration
    public @interface RestClientTest
    Annotation that can be used in combination with @RunWith(SpringRunner.class) for a typical Spring rest client test. Can be used when a test focuses only on beans that use RestTemplateBuilder.

    Using this annotation will disable full auto-configuration and instead apply only configuration relevant to rest client tests (i.e. Jackson or GSON auto-configuration and @JsonComponent beans, but not regular @Component beans).

    By default, tests annotated with RestClientTest will also auto-configure a MockRestServiceServer. For more fine-grained control the @AutoConfigureMockRestServiceServer annotation can be used.

    If you are testing a bean that doesn't use RestTemplateBuilder but instead injects a RestTemplate directly, you can add @AutoConfigureWebClient(registerRestTemplate=true).

    Since:
    1.4.0
    • Optional Element Summary

      Optional Elements 
      Modifier and TypeOptional ElementDescription
      Class<?>[]components
      Specifies the components to test.
      Class<?>[]excludeAutoConfiguration
      Auto-configuration exclusions that should be applied for this test.
      org.springframework.context.annotation.ComponentScan.Filter[]excludeFilters
      A set of exclude filters which can be used to filter beans that would otherwise be added to the application context.
      org.springframework.context.annotation.ComponentScan.Filter[]includeFilters
      A set of include filters which can be used to add otherwise filtered beans to the application context.
      String[]properties
      Properties in form key=value that should be added to the Spring Environment before the test runs.
      booleanuseDefaultFilters
      Determines if default filtering should be used with @SpringBootApplication.
      Class<?>[]value
      Specifies the components to test.
    • Element Detail

      • 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:
        {}
      • value

        @AliasFor("components")
        Class<?>[] value
        Specifies the components to test. This is an alias of components() which can be used for brevity if no other attributes are defined. See components() for details.
        Returns:
        the components to test
        See Also:
        components()
        Default:
        {}
      • components

        @AliasFor("value")
        Class<?>[] components
        Specifies the components to test. May be left blank if components will be manually imported or created directly.
        Returns:
        the components to test
        See Also:
        value()
        Default:
        {}
      • useDefaultFilters

        boolean useDefaultFilters
        Determines if default filtering should be used with @SpringBootApplication. By default only @JsonComponent and Module beans are included.
        Returns:
        if default filters should be used
        See Also:
        includeFilters(), excludeFilters()
        Default:
        true
      • includeFilters

        org.springframework.context.annotation.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

        org.springframework.context.annotation.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

        @AliasFor(annotation=org.springframework.boot.autoconfigure.ImportAutoConfiguration.class,
                  attribute="exclude")
        Class<?>[] excludeAutoConfiguration
        Auto-configuration exclusions that should be applied for this test.
        Returns:
        auto-configuration exclusions to apply
        Default:
        {}