All Classes and Interfaces
Class
Description
An action class represents a state transformation that can be performed
on an object of type
S
.An action class represents a state change that can be preformed
on a stateful
S
.Implement this interface if you want to have the action's transforming behaviour depend on the previous state.
Implement this interface if you want to have the action's transforming behaviour not to depend on previous state.
Subclass if you want to implement an independent action that simply mutates the given state.
Subclass if you want to implement an independent action that simply transforms the given state.
An ActionBuilder is used to create simple Action objects.
A chain of transforming Actions that can be run for values of type
S
.A sequence of Actions that can be run with a model of type
M
Use to register a concrete lifecycle hook implementation
for a test element -- a container class or a property method.
Annotate static methods of a container class with
@AfterContainer
to have them run exactly once after all of its properties or any lifecycle
methods from embedded containers have been run.Implement this hook to define behaviour for a container (class or whole test suite)
that should be run exactly once after of its property methods and child containers.
This is an alias of AfterProperty
The after-failure mode determines how a property behaves after it has been falsified.
Annotate methods of a container class with
@AfterProperty
to have them run once after each property (or example)
including properties (or examples) of embedded containers.Annotate methods of a container class with
@AfterTry
to have them run once after each try - the actual invocation of the property
method with generated parameters - including properties of
embedded containers.Constrain the chars used to generate Strings or Characters to upper and lower case chars.
The main interface for representing objects that can be generated and shrunk.
Implementors can modify any arbitrary before it's being used for value generation.
Using this base class is the easiest way to make use of the configuration mechanism
described in ArbitraryConfigurator
Use this superclass if you want to provide a specialized type of arbitrary,
e.g. with additional methods for configuration or defaults,
but don't want to implement the whole Arbitrary interface yourself.
Implementations of this class are used to provide default arbitraries to
ForAll
parameters without an explicit provider reference.Implementations of this class are used to provide single arbitraries for
ForAll
parameters and parameter types annotated with From
.An aggregate interface of BeforeContainerHook and AfterContainerHook
for convenience.
Implement this hook to define behaviour that should "wrap" the execution of a property,
i.e., do something directly before or after running a property - or both.
Implement this hook to define behaviour that should "wrap" the execution of a single try,
i.e., do something directly before or after executing a property method with a given list of parameters.
Fluent interface to add functionality to arbitraries that generate instances
of Arrays
Annotate static methods of a container class with
@BeforeContainer
to have them run exactly once before any of its properties or any lifecycle
methods from embedded containers will be run.Implement this hook to define behaviour for a container (class or whole test suite)
that should be run exactly once before any of its property methods and child containers.
This is an alias of BeforeProperty
Annotate methods of a container class with
@BeforeProperty
to have them run once before each property (or example)
including properties (or examples) of embedded containers.Annotate methods or member variables of a container class with
@BeforeTry
.Fluent interface to configure the generation of BigDecimal values.
Fluent interface to configure the generation of BigInteger values.
Constrain the range of a generated "Big" number.
Provide access to combinators through builder functionality.
Functionality to manipulate a builder.
Fluent interface to configure the generation of Byte and byte values.
Constrain the range of a generated byte or Byte parameters.
Fluent interface to configure the generation of date values.
Experimental feature.
Experimental feature.
A chain represents a series of states of type
T
in which the previous state
is somehow transformed into the next state.A change detector is used to determine if a stateful object has changed after the application of a transformer.
Fluent interface to configure the generation of Character and char values.
Constrain the chars used to generate Strings or Characters to chars in the range
from
from
to to
.Constrain the chars used to generate Strings or Characters to chars
contained in
value
.Provide implementation for stream to collect to LinkedHashSet in order to preserve order
and to make random-based generation deterministic
Combinator for two values.
Combinators.Combinator3<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object>
Combinator for three values.
Combinators.Combinator4<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object>
Combinator for four values.
Combinators.Combinator5<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,T5 extends @Nullable Object>
Combinator for five values.
Combinators.Combinator6<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,T5 extends @Nullable Object,T6 extends @Nullable Object>
Combinator for six values.
Combinators.Combinator7<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,T5 extends @Nullable Object,T6 extends @Nullable Object,T7 extends @Nullable Object>
Combinator for seven values.
Combinators.Combinator8<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,T5 extends @Nullable Object,T6 extends @Nullable Object,T7 extends @Nullable Object,T8 extends @Nullable Object>
Combinator for eight values.
Combinators.F3<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,R extends @Nullable Object>
Combinators.F4<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,R extends @Nullable Object>
Combinators.F5<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,T5 extends @Nullable Object,R extends @Nullable Object>
Combinators.F6<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,T5 extends @Nullable Object,T6 extends @Nullable Object,R extends @Nullable Object>
Combinators.F7<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,T5 extends @Nullable Object,T6 extends @Nullable Object,T7 extends @Nullable Object,R extends @Nullable Object>
Combinators.F8<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,T5 extends @Nullable Object,T6 extends @Nullable Object,T7 extends @Nullable Object,T8 extends @Nullable Object,R extends @Nullable Object>
Combinator for any number of values.
The context of a test container (a container class or the whole jqwik suite).
Used to annotate methods that can provide data points for property methods.
Fluent interface to configure the generation of date values.
Constrain the range of generated date parameters.
Constrain the range of generated date time parameters.
Constrain the range of generated day of month parameters.
Constrain the range of generated day of week parameters.
Use
@Disabled("reason to disable")
to disable test container or test method
during normal test execution.Use
@Domain(MyDomainContext.class)
to use only
arbitrary providers and
arbitrary configurators
defined in given context classClass that implement this interface are used to annotate property methods or containers like this:
Domain(MyDomainContext.class)
.Base class for convention based implementations of DomainContext
Fluent interface to configure the generation of Double and double values.
Constrain the range of a generated double or Double parameters.
Fluent interface to configure the generation of duration values.
Constrain the range of generated periods.
The edge-cases mode determines if and when combined edge-cases of all parameters will be explicitly generated.
Constrain generated strings to be valid email addresses.
Fluent interface to configure arbitraries that generate valid email addresses.
Use this annotation to enable footnote support.
Use
@Example
to mark methods that are simple, example-based
test cases.Used only internally to run and compute exhaustive generation of parameters
A falsified sample is the collection of data that could be falsified during
a property run.
This interface is no longer used anywhere in jqwik's public API
and could therefore be deprecated and moved to engine implementation.
The fixed seed mode determines how jqwik should behave if a property has an
explicit
Property.seed()
specified.Fluent interface to configure the generation of Float and float values.
Constrain the range of a generated float or Float parameters.
An interface that can be used to add information to the report of a failing property.
Used to annotate method parameters that will be provided by jqwik.
Used to annotate type parameters within property parameters annotated with ForAll .
Used to annotate property methods.
Fluent interface to configure arbitraries that represent functional types
Wraps a function to be generated.
The generation mode defines the generation behaviour of a property.
The methods in this class mimic the behaviour of
Objects.hash(Object...)
()}
but do not create an array on the way.A statistics report format to display collected statistics entries as a histogram
Constrain the range of generated hour parameters.
Fluent interface to configure the generation of instant values.
Constrain the range of generated instant parameters.
Fluent interface to configure the generation of Integer and int values.
Constrain the range of a generated int or Integer parameters.
Implement this hook to override behaviour that invokes a method through reflection.
Fluent interface to add functionality to arbitraries that generate instances
of type Iterator
Base exception for exceptions that are thrown during the discovery phase
and during setup of properties before they are actually run.
JqwikSession is the abstraction to give users of Arbitrary.sample()
and Arbitrary.sampleStream() outside the jqwik lifecycle
more control over the lifecycle.
Use
@Label("a descriptive name")
to give test classes, groups and methods
a more readable label (aka display name).Supertype of all lifecycle context interfaces.
This is the supertype of all lifecycle hook interfaces.
Experimental feature.
Define how long a resource,
e.g. the value in a Store with the same identifier,
will live:
For the whole test run
For the currently running property
For the currently running try
Any hook or collection of hooks can use this enum to allow the specification
of the lifespan of resources from which it is abstracting.
Fluent interface to add functionality to arbitraries that generate instances
of type List
Fluent interface to configure the generation of local date values.
Fluent interface to configure the generation of local date time values.
Fluent interface to configure the generation of local time values.
Fluent interface to configure the generation of Long and long values.
Constrain the range of a generated long or BigInteger parameters.
Constrain the chars used to generate Strings or Characters to lower case chars.
Fluent interface to add functionality to arbitraries that generate instances
of type Map
The context information for all method-based lifecyle contexts.
Constrain the range of generated minute parameters.
Fluent interface to configure the generation of month and day values.
Constrain the range of generated month and day parameters.
Constrain the range of generated month parameters.
Constrain the range of a generated number to be less than 0.
Constrain a string to never be blank, i.e. not empty and not just whitespace.
Constrain the size of generated "sizable" types to be at least 1.
A specialized type of Histogram to divide collected numbers
into range-based clusters for display in a histogram.
Constrain the chars used to generate Strings or Characters to digits.
Fluent interface to configure the generation of offset date time values.
Constrain the range of generated periods.
Fluent interface to configure the generation of offset time values.
Experimental feature.
Fluent interface to configure the generation of period values.
Constrain the range of generated periods.
Annotate property methods of a container class with
@PerProperty
if you want to have some lifecycle control over this property alone.Constrain the range of a generated number to be greater than 0.
Constrain the precision of generated times.
Describes if and how a concrete registered hook is propagated to children of
the element where the hook has been registered.
Use
@Property
to mark methods that serve as properties.Represents a property method's attributes which are set (or not)
in attributes of the Property annotation.
Annotate a container class with
@PropertyDefaults
if you want to set defaults of Property
attributes of all contained property methods.Represents the result of running a property.
Status of executing a single test or container.
Objects of this class represent a property's execution.
The context information of a property or example.
Used to annotate methods that can provide values for property method parameters.
Implement this hook to override behaviour that provides the test instance for each property try.
Determines how generated numerical values are generated and distributed
across the allowed range and a center withing this range.
Generator for BigInteger values which are behind all generated numeric values in jqwik.
Use this hook if you want to apply several hook implementations that belong
together but that cannot be implemented in a single class, e.g. because
the same hook type must be added with different proximity or different propagation.
A short-lived object used for registering concrete hook implementation classes.
Use
@Report
to specify what additional things should be reported
when running a property.An interface that can be used to report additional information for a test element,
i.e. a test container or property.
This hook type allows to provide parameters for property methods
but also to annotated lifecycle methods.
A functional interface specialized on providing parameters to property methods
and to annotated lifecycle methods.
Use to constrain the maximum number of decimal places when generating decimal numbers.
Constrain the range of generated second parameters.
An Arbitrary implementation can also implement this interface if it wants
to take over its own configuration which is usually being done by registered instances
of ArbitraryConfigurator.
Fluent interface to add functionality to arbitraries that generate instances
of type Set
Fluent interface to configure the generation of Short and short values.
Constrain the range of a generated short or Short parameters.
A
ShrinkingDistance
is a measure of how close a value is to the minimum value,
aka target value.The shrinking mode defines the shrinking behaviour of a property.
A shrunk falsified sample is a FalsifiedSample that results
from shrinking.
Fluent interface to configure arbitraries that have size constraints for generated values, e.g. collections and arrays.
Constrain the size of generated "sizable" types.
Use this hook to determine if an annotated element should be skipped during
a test run or not.
This class serves as a container for static methods to collect statistical
data about generated values within a property method and to check coverage
of that data.
This class serves as an interface to collect statistical
data about generated values within a property method.
Intermediate object to provide statistics coverage checking capabilities
Describes an entry for a given statistics selector.
This annotation can be used to influence statistics reporting.
An implementation of this interface is responsible for creating
a formatted statistics report.
Experimental feature.
Any value that implements this interface will automatically be closed when its store goes out of scope.
Fluent interface to add functionality to arbitraries whose generation artefacts
can be streamed, e.g.
Fluent interface to add functionality to arbitraries that generate instances
of type Stream
Fluent interface to configure arbitraries that generate String values.
Constrain the length of generated Strings.
Use
@Tag("a tag")
to give test classes, groups and methods an (additional) tag
which can later be used to select the set of tests to execute.Constrain the range of generated time parameters.
A transformation provides an arbitrary of transformers
for values of type
T
in the context of chains.A transformer is used to transform a state of type
T
into another value of this type.Fluent interface to configure arbitraries that try to generate instances
of a given type
T
from the type's available constructors and factory methods.A traverser describes how to travers a given type by providing a hook to
resolve a parameter into an arbitrary and a means to find all relevant
creators (constructors or factory methods) for a type that does not have a suitable default arbitrary.
Represents the result of calling a property method with a list of parameters.
Status of running a single try.
Experimental feature.
The context information of a single try of a property.
Typed Tuples are very convenient containers to have, especially in the context of
generating dependent values.
Tuple.Tuple4<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object>
Tuple.Tuple5<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,T5 extends @Nullable Object>
Tuple.Tuple6<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,T5 extends @Nullable Object,T6 extends @Nullable Object>
Tuple.Tuple7<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,T5 extends @Nullable Object,T6 extends @Nullable Object,T7 extends @Nullable Object>
Tuple.Tuple8<T1 extends @Nullable Object,T2 extends @Nullable Object,T3 extends @Nullable Object,T4 extends @Nullable Object,T5 extends @Nullable Object,T6 extends @Nullable Object,T7 extends @Nullable Object,T8 extends @Nullable Object>
Fluent interface to configure arbitraries that try to generate instances
of a given type
T
from the type's available constructors and factory methods.An instance of
TypeUsage
describes the information available for parameter or return types.Enhancers can manipulate the perceived type of parameters.
Add a uniqueness constraint to a String parameter, i.e.,
there won't be any duplicate characters in a generated String.
Add a uniqueness constraint to a Collection, Stream or Array parameter.
Constrain the chars used to generate Strings or Characters to upper and lower case chars.
Generate a value from the annotated class' or type's constructors or factory methods.
This is the home for static methods to produce arbitraries for Web-related
domain types, like email addresses, ip addresses, domains, URLs etc.
Constrain generated strings to be valid web domain names (e.g.
Constrain the chars used to generate Strings or Characters to chars
that will return
true
for Character.isWhitespace(char)
.Allows jqwik to inject null parameters into generated values.
Fluent interface to configure the generation of Year values.
Fluent interface to configure the generation of year and month values.
Constrain the range of generated year and month parameters.
Constrain the range of generated positive year parameters.
Fluent interface to configure the generation of zoned date time values.
Fluent interface to configure the generation of zone offset values.