Annotation Type WebFluxTest
@Target(TYPE) @Retention(RUNTIME) @Documented @Inherited @BootstrapWith(org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTestContextBootstrapper.class) @ExtendWith(org.springframework.test.context.junit.jupiter.SpringExtension.class) @OverrideAutoConfiguration(enabled=false) @TypeExcludeFilters(org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTypeExcludeFilter.class) @AutoConfigureCache @AutoConfigureJson @AutoConfigureWebFlux @AutoConfigureWebTestClient @ImportAutoConfiguration public @interface WebFluxTest
Annotation that can be used in combination with@RunWith(SpringRunner.class)
for a typical Spring WebFlux test. Can be used when a test focuses only on Spring WebFlux components.Using this annotation will disable full auto-configuration and instead apply only configuration relevant to WebFlux tests (i.e.
@Controller
,@ControllerAdvice
,@JsonComponent
,Converter
/GenericConverter
, andWebFluxConfigurer
beans but not@Component
,@Service
or@Repository
beans).By default, tests annotated with
@WebFluxTest
will also auto-configure aWebTestClient
. For more fine-grained control of WebTestClient the@AutoConfigureWebTestClient
annotation can be used.Typically
@WebFluxTest
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 WebTestClient, you should consider
@SpringBootTest
combined with@AutoConfigureWebTestClient
rather than this annotation.- Since:
- 2.0.0
- See Also:
AutoConfigureWebFlux
,AutoConfigureWebTestClient
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description Class<?>[]
controllers
Specifies the controllers 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 SpringEnvironment
before the test runs.boolean
useDefaultFilters
Determines if default filtering should be used with@SpringBootApplication
.Class<?>[]
value
Specifies the controllers to test.
Element Detail
properties
String[] properties
Properties 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
@AliasFor("controllers") Class<?>[] value
Specifies the controllers to test. This is an alias ofcontrollers()
which can be used for brevity if no other attributes are defined. Seecontrollers()
for details.- Returns:
- the controllers to test
- See Also:
controllers()
- Default:
- {}
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()
- Default:
- {}
useDefaultFilters
boolean useDefaultFilters
Determines if default filtering should be used with@SpringBootApplication
. By default only@Controller
(when no explicitcontrollers
are defined),@ControllerAdvice
andWebFluxConfigurer
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:
- {}