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 random port.
  • 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, @Service or @Repository beans). See includeFilters() for a complete list of classes that are included.
  • Sets the active profile to test.
  • Registers a GraphQLTestTemplate bean for use in GraphQL tests that are using a fully running web server.
  • Typically GraphQLTest is used in combination with @MockBean or @Import to create any collaborators required by your GraphQLResolver beans.

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

      @AliasFor(annotation=org.springframework.test.context.ActiveProfiles.class) String[] 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})}