EqualsVerifier can be used in Java unit tests to verify whether the contract for the equals and hashCode methods in a class is met. The Maven coordinates are:
<dependency> <groupId>nl.jqno.equalsverifier</groupId> <artifactId>equalsverifier</artifactId> <version>3.5.2</version> <scope>test</scope> </dependency>
Please see the project's website.
To build EqualsVerifier, you need Maven. Just call
mvn from the command-line, without any parameters, and you're done. Alternatively, you can use any IDE with Maven support.
EqualsVerifier uses Google Java Format to format Java files. You can call it using
mvn (without any parameters), which will also run the tests and all the other static analysis. Or run
mvn spotless:apply to only run the formatter.
src/test folder contains, apart from the regular
java folder, some version-specific
javaXX folders that target specific JDKs. For instance, the
src/test/java16 folder contains unit tests that test things related to records. A Maven profile automatically picks up these folders if the JDK that runs the tests has at least that version.
nl.jqno.equalsverifier.internal.architecture.TestPresenceTest checks that the tests are indeed picked up when the JDK version matches.
lib/ folder contains a local Maven repository containing a signed jar, used to test potential ClassLoader issues
Here's how to install a jar into it:
mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file \ -Dfile=<path-to-file> -DgroupId=<myGroup> \ -DartifactId=<myArtifactId> -Dversion=<myVersion> \ -Dpackaging=<myPackaging> -DcreateChecksum=true \ -DlocalRepositoryPath=lib
The signed jar itself can be found in this repo.
Copyright 2009-2020 Jan Ouwens