Annotation Interface GraphQlTest
@Target(TYPE)
@Retention(RUNTIME)
@Documented
@Inherited
@BootstrapWith(org.springframework.boot.test.autoconfigure.graphql.GraphQlTestContextBootstrapper.class)
@ExtendWith(org.springframework.test.context.junit.jupiter.SpringExtension.class)
@OverrideAutoConfiguration(enabled=false)
@TypeExcludeFilters(GraphQlTypeExcludeFilter.class)
@AutoConfigureCache
@AutoConfigureJson
@AutoConfigureGraphQl
@AutoConfigureGraphQlTester
@ImportAutoConfiguration
public @interface GraphQlTest
Annotation to perform GraphQL tests focusing on GraphQL request execution without a Web
layer, and loading only a subset of the application configuration.
The annotation disables full auto-configuration and instead loads only components relevant to GraphQL tests, including the following:
@Controller
RuntimeWiringConfigurer
@JsonComponent
Converter
GenericConverter
DataFetcherExceptionResolver
Instrumentation
GraphQlSourceBuilderCustomizer
The annotation does not automatically load @Component
, @Service
,
@Repository
, and other beans.
By default, tests annotated with @GraphQlTest
have a
GraphQlTester
configured. For more
fine-grained control of the GraphQlTester, use
@AutoConfigureGraphQlTester
.
Typically @GraphQlTest
is used in combination with
@MockBean
or
@Import
to load any collaborators
and other components required for the tests.
To load your full application configuration instead and test via
HttpGraphQlTester
, consider using
@SpringBootTest
combined
with @AutoConfigureHttpGraphQlTester
.
- Since:
- 2.7.0
- See Also:
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionClass<?>[]
Specifies the controllers to test.Class<?>[]
Auto-configuration exclusions that should be applied for this test.org.springframework.context.annotation.ComponentScan.Filter[]
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[]
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 controllers 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
- Default:
- {}
-
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:
- Default:
- {}
-
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:
- Default:
- {}
-
useDefaultFilters
boolean useDefaultFiltersDetermines if default filtering should be used with@SpringBootApplication
. By default, only@Controller
(when no explicitcontrollers
are defined),RuntimeWiringConfigurer
,@JsonComponent
,Converter
,GenericConverter
,DataFetcherExceptionResolver
,Instrumentation
andGraphQlSourceBuilderCustomizer
beans are included.- Returns:
- if default filters should be used
- See Also:
- Default:
- true
-
includeFilters
org.springframework.context.annotation.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
org.springframework.context.annotation.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=org.springframework.boot.autoconfigure.ImportAutoConfiguration.class, attribute="exclude") Class<?>[] excludeAutoConfigurationAuto-configuration exclusions that should be applied for this test.- Returns:
- auto-configuration exclusions to apply
- Default:
- {}
-