An effectful property.
An effectful property.
Effectful properties are ones in which each sample evaluates in a type constructor.
That is, instead of directly computing a result from a single sample of generated values,
the result is computed in some effect F[_]
-- e.g., cats.effect.IO
or scala.concurrent.Future
.
A property which computes in an effect F[_]
has the type PropF[F]
.
PropF[F]
instances can be constructed for any effect which has a MonadError[F, Throwable]
instance.
The most common way to construct PropF[F]
values is by using one of the forAllF
methods on
the PropF
companion. These are analogous to Prop.forAll
from ScalaCheck. When computing
the result of a single sample, F[Unit]
values are treated as successes and any exceptions thrown
are treated as falsifications.
- Companion
- object