Skip to content

Properties

Properties are proofs extracted as classes so that they can be run in a different context. More specifically they verify the behaviour of objects.

The main goal of these properties is to make sure multiple implementations of a given system all behave the same way.

The most prominent example in the Innmind ecosystem are the filesystem properties. innmind/filesystem has 2 implementations of its Adapter interface, a real implementation and an in memory one, and both implementations are tested against the same properties. innmind/s3 also has implementation of Adapter and simply uses the filesystem properties to make sure implementations can be swapped by a user without a change in behaviour.

The ORM also uses properties to make sure its 3 storage implementations behave exactly the same way.

To learn more about them head to the BlackBox package documentation.