Package net.jqwik.api

Annotation Interface Property


@Target({METHOD,ANNOTATION_TYPE}) @Retention(RUNTIME) @Documented @Testable @API(status=STABLE, since="1.0") public @interface Property
Use @Property to mark methods that serve as properties. Those methods usually have one or more parameters annotated with ForAll.

They are executed (tried) several times, either until they fail or until the configured number of tries() has been reached.

Just like methods annotated with Example example, annotated methods must not be private. They can either return Boolean, boolean or void.

For more info, you can have a look at the user guide, optional-property-parameters.

See Also:
  • Field Details

  • Element Details

    • tries

      int tries
      Tries are the test runs with different parameters. By default it is 1000. You can override globally in the property file (see jqwik.properties, or here, in Property annotation.
      Returns:
      number of tries to run
      Default:
      0
    • maxDiscardRatio

      int maxDiscardRatio
      The maximum ratio of tried versus actually checked property runs in case you are using Assumptions. If the ratio is exceeded jqwik will report this property as a failure.

      The default is 5 which can be overridden in jqwik.properties.

      Returns:
      the maximum ration
      Default:
      0
    • seed

      String seed
      Default:
      ""
    • shrinking

      ShrinkingMode shrinking
      Controls how shrinking is done when falsified property is found.

      Default value is ShrinkingMode.BOUNDED, i.e. shrinking is tried to a depth of 1000 steps maximum per value.

      Returns:
      the shrinking mode
      Default:
      NOT_SET
    • stereotype

      String stereotype
      Default:
      ""
    • generation

      @API(status=MAINTAINED, since="1.0") GenerationMode generation
      Default:
      NOT_SET
    • afterFailure

      @API(status=MAINTAINED, since="1.0") AfterFailureMode afterFailure
      Default:
      NOT_SET
    • edgeCases

      @API(status=MAINTAINED, since="1.8.0") EdgeCasesMode edgeCases
      Default:
      NOT_SET
    • whenFixedSeed

      @API(status=MAINTAINED, since="1.4.0") FixedSeedMode whenFixedSeed
      Controls how to behave if a seed() is present.

      Default value is the value from the global jqwik.seeds.whenfixed configuration property.

      Returns:
      the fixed seed mode
      Default:
      NOT_SET