Package com.graphql.spring.boot.test
Annotation Interface GraphQLTest
@Target(TYPE)
@Retention(RUNTIME)
@OverrideAutoConfiguration(enabled=false)
@SpringBootTest(webEnvironment=RANDOM_PORT)
@ActiveProfiles
@ComponentScan
@ImportAutoConfiguration
public @interface GraphQLTest
Annotation that can be specified on a test class for running tests that focus
only on GraphQL components.
Provides the following features over the regular Spring TestContext Framework:
- By default a fully running web server will be started listening on a
randomport. - Disables full auto-configuration and instead apply only configuration relevant to GraphQL
tests (i.e. beans required to create the GraphQL servlet but not
@Component,@Serviceor@Repositorybeans). SeeincludeFilters()for a complete list of classes that are included. - Sets the active profile to test.
- Registers a
GraphQLTestTemplatebean for use in GraphQL tests that are using a fully running web server. - Typically
GraphQLTestis used in combination with@MockBeanor@Importto create any collaborators required by yourGraphQLResolverbeans.
If you are looking to load your full application configuration and use GraphQLTestTemplate you should consider @SpringBootTest rather than this annotation.
- Since:
- 5.0.2
-
Element Details
-
value
String[] value- Default:
- {}
-
profiles
- Default:
- {"test"}
-
webEnvironment
@AliasFor(annotation=org.springframework.boot.test.context.SpringBootTest.class) org.springframework.boot.test.context.SpringBootTest.WebEnvironment webEnvironment- Default:
- RANDOM_PORT
-
classes
@AliasFor(annotation=org.springframework.boot.autoconfigure.ImportAutoConfiguration.class) Class<?>[] classes- Default:
- {graphql.kickstart.autoconfigure.web.servlet.GraphQLInstrumentationAutoConfiguration.class, org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration.class, graphql.kickstart.autoconfigure.tools.GraphQLJavaToolsAutoConfiguration.class, graphql.kickstart.autoconfigure.web.servlet.GraphQLWebAutoConfiguration.class, com.graphql.spring.boot.test.GraphQLTestAutoConfiguration.class, org.springframework.context.support.PropertySourcesPlaceholderConfigurer.class, org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration.class, org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration.class, org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration.class, org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration.class}
-
useDefaultFilters
@AliasFor(annotation=org.springframework.context.annotation.ComponentScan.class) boolean useDefaultFilters- Default:
- false
-
includeFilters
@AliasFor(annotation=org.springframework.context.annotation.ComponentScan.class) org.springframework.context.annotation.ComponentScan.Filter[] includeFilters- Default:
- {@org.springframework.context.annotation.ComponentScan.Filter(type=ASSIGNABLE_TYPE, classes={graphql.schema.idl.SchemaParser.class, graphql.kickstart.tools.GraphQLResolver.class, graphql.kickstart.tools.SchemaParserDictionary.class, graphql.schema.GraphQLScalarType.class, graphql.kickstart.tools.SchemaParserOptions.class, graphql.schema.GraphQLSchema.class, graphql.kickstart.execution.config.GraphQLSchemaProvider.class, graphql.kickstart.servlet.core.GraphQLServletListener.class, graphql.execution.instrumentation.Instrumentation.class, graphql.kickstart.execution.error.GraphQLErrorHandler.class, graphql.execution.ExecutionStrategy.class, graphql.kickstart.execution.context.GraphQLContextBuilder.class, graphql.kickstart.execution.GraphQLRootObjectBuilder.class, graphql.kickstart.execution.config.GraphQLServletObjectMapperConfigurer.class, graphql.execution.preparsed.PreparsedDocumentProvider.class, org.springframework.web.filter.CorsFilter.class, graphql.kickstart.execution.config.ExecutionStrategyProvider.class, graphql.kickstart.servlet.input.GraphQLInvocationInputFactory.class, graphql.kickstart.execution.GraphQLQueryInvoker.class, graphql.kickstart.execution.GraphQLObjectMapper.class, graphql.kickstart.servlet.GraphQLHttpServlet.class, graphql.kickstart.servlet.AbstractGraphQLHttpServlet.class, graphql.kickstart.servlet.GraphQLWebsocketServlet.class, org.springframework.web.socket.server.standard.ServerEndpointExporter.class, jakarta.servlet.MultipartConfigElement.class})}
-