valid8j
(pronounced validate-j) is a DbC (design by contract[1]) library named after valid4j
[2].
It uses pcond
, which provides you with predicates that can print descriptive message on a failure, instead of hamcrest
used by valid4j
.
The benefit of pcond
over hamcrest
is its compatibility and extensibility.
Instead of "matchers" that hamcrest
uses to verify values, pcond
uses Java’s plain Predicate
and provide useful preset predicates from which you can build your own predicates for complex types.
So, you can reuse the predicates you created for assertions for other purposes, such as value checking and testing.
Have a following maven dependency in your pom.xml
.
<dependency>
<groupId>com.github.dakusui</groupId>
<artifactId>valid8j-pcond</artifactId>
<version>{valid8j-pcond-version}</version>
</dependency>
Visit oss.sonatype.org to figure out the most recent version of valid8j-pcond
.
-
[1] Wikipedia article on Design by Contract, https://en.wikipedia.org/wiki/Design_by_contract
-
[2] Valid4j, http://www.valid4j.org