Annotation Type FeatureRequirement


  • @Retention(RUNTIME)
    @Target(METHOD)
    @Repeatable(FeatureRequirements.class)
    public @interface FeatureRequirement
    A FeatureRequirement annotation defines a feature to check for a test in the Gremlin Test Suite. The annotation needs to be added to each test that requires a check for feature support. Multiple sideEffects may be added for each feature to check.

    Tests should not directly test for features using the FeatureSet classes/methods with if/then type statements in the tests themselves as the logic for whether the test gets executed is lost in the code and auto-passes tests when the check for the feature has a negative result. Extracting such logic for feature support for a test into the FeatureRequirement annotation will "ignore" a test rather than pass it, making it easier for implementers to see exactly which tests are being evaluated during test time.

    Author:
    Stephen Mallette (http://stephen.genoprime.com)
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      String feature
      The name of the feature as defined by the public static final member variable on each FeatureSet implementation.
      Class<? extends Graph.Features.FeatureSet> featureClass
      The FeatureSet extension interface that owns the feature to be tested.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      boolean supported
      Denotes if the test should be executed if the feature is supported or unsupported.
    • Element Detail

      • feature

        String feature
        The name of the feature as defined by the public static final member variable on each FeatureSet implementation.
      • supported

        boolean supported
        Denotes if the test should be executed if the feature is supported or unsupported. By default this value is set to true.
        Default:
        true