Skip to content

Latest commit

 

History

History
31 lines (18 loc) · 1.47 KB

core-module.md

File metadata and controls

31 lines (18 loc) · 1.47 KB

Core Module

Provides everything needed to create and evaluating properties programmatically.

The core module will be independent from any concrete testing framework or assertion framework. Thus it can be used from anywhere, e.g. JUnit Jupiter, TestNG or Spock.

Ideally, the only dependencies are org.opentest4j and org.apiguardian.

Required API Capabilities

  • Basic interfaces for arbitraries and generators, which allow to map, filter and transform them.

  • Create arbitraries of fundamental types.

  • Compose several arbitraries into new ones.

  • Specifying properties and validating them by running code.

  • Since property validation is highly configurable, the validation result must contain and report a lot of details to allow proper interpretation. Also, a failed validation must report all or a subset of falsifying samples that have been identified.

  • Generate values (samples) from arbitraries directly by providing a generation source. The generation source can be a pseudo-random one or represent the recording of a previously generated random source.

  • Check the distribution of generated values as part of invariants.

  • Change the default configuration for validating properties in a straightforward way.