Annotation 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
Author:
Brian Clozel
See Also:
  • Element Details

    • properties

      String[] properties
      Properties in form key=value that should be added to the Spring Environment before the test runs.
      Returns:
      the properties to add
      Default:
      {}
    • value

      @AliasFor("controllers") Class<?>[] value
      Specifies the controllers to test. This is an alias of controllers() which can be used for brevity if no other attributes are defined. See controllers() for details.
      Returns:
      the controllers to test
      See Also:
      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:
      Default:
      {}
    • useDefaultFilters

      boolean useDefaultFilters
      Determines if default filtering should be used with @SpringBootApplication. By default, only @Controller (when no explicit controllers are defined), RuntimeWiringConfigurer, @JsonComponent, Converter, GenericConverter, DataFetcherExceptionResolver, Instrumentation and GraphQlSourceBuilderCustomizer beans are included.
      Returns:
      if default filters should be used
      See Also:
      Default:
      true
    • includeFilters

      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

      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=ImportAutoConfiguration.class, attribute="exclude") Class<?>[] excludeAutoConfiguration
      Auto-configuration exclusions that should be applied for this test.
      Returns:
      auto-configuration exclusions to apply
      Default:
      {}