Annotation Interface 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(RestClientTypeExcludeFilter.class)
@AutoConfigureCache
@AutoConfigureWebClient
@AutoConfigureMockRestServiceServer
@ImportAutoConfiguration
public @interface RestClientTest
Annotation for a Spring rest client test that focuses only on beans
that use
RestTemplateBuilder
or RestClient.Builder
.
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)
.
When using JUnit 4, this annotation should be used in combination with
@RunWith(SpringRunner.class)
.
- Since:
- 1.4.0
- Author:
- Stephane Nicoll, Phillip Webb, Artsiom Yudovin
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionClass<?>[]
Specifies the components to test.Class<?>[]
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.String[]
Properties in form key=value that should be added to the SpringEnvironment
before the test runs.boolean
Determines if default filtering should be used with@SpringBootApplication
.Class<?>[]
Specifies the components to test.
-
Element Details
-
properties
String[] propertiesProperties in form key=value that should be added to the SpringEnvironment
before the test runs.- Returns:
- the properties to add
- Since:
- 2.1.0
- Default:
- {}
-
value
Specifies the components to test. This is an alias ofcomponents()
which can be used for brevity if no other attributes are defined. Seecomponents()
for details.- Returns:
- the components to test
- See Also:
- Default:
- {}
-
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:
- Default:
- {}
-
useDefaultFilters
boolean useDefaultFiltersDetermines if default filtering should be used with@SpringBootApplication
. By default only@JsonComponent
andModule
beans are included.- Returns:
- if default filters should be used
- See Also:
- Default:
- true
-
includeFilters
ComponentScan.Filter[] includeFiltersA 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[] excludeFiltersA 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=ImportAutoConfiguration.class, attribute="exclude") Class<?>[] excludeAutoConfigurationAuto-configuration exclusions that should be applied for this test.- Returns:
- auto-configuration exclusions to apply
- Default:
- {}
-