Java SDK
The Antithesis Java SDK offers classes to use Antithesis functionality in your Java code under test. It’s available on Github and as a JAR on Maven Central.
Prerequisites
- Java 8 or higher.
If you want to use a different version, contact us at support@antithesis.com or ask on our Discord.
Classes
The SDK provides three classes which each offer different functionality.
- The Assert class methods let you define test properties in your software or test template.
- The Random class methods request structured and unstructured randomness from the Antithesis platform.
- The Lifecycle class methods inform Antithesis that particular phases or milestones have been reached.
SDK runtime behavior
The SDK has sensible fallback behaviors that enable you to have a single build of your software that runs both inside and outside Antithesis.
One benefit of this is that Sometimes Assertions continue to function outside Antithesis, and can be quite useful for discovering what states of your program are encountered during real-world use.
Fallback behavior for methods in Assert and Lifecycle
Methods in the Assert and Lifecycle classes have two modes for when your software is running outside Antithesis, including in production:
-
Default This mode is the default behavior, where
assertandlifecycleuse local implementations of Antithesis functionality. However, the results will not be logged anywhere because no logfile has been specified. -
Default with logging The same as the above but logs output locally in a structured JSON format.
This mode is useful for dicovering what states of your program are encountered during real-world use.
This mode is selected at runtime by setting the environment variable
ANTITHESIS_SDK_LOCAL_OUTPUTat program startup. This variable must be set to a filepath: a logfile will be created at this location. The file must be located inside an already-existing directory. You may supply either a relative or absolute path.E.g. set
ANTITHESIS_SDK_LOCAL_OUTPUT=assertions_20240520.jsonat startup.
Fallback behavior for methods in Random
Methods in the Random class always fall back upon the java.util.Random class for entropy when run outside of Antithesis.
Further reading
Here’s a tutorial to familiarize you.
References to the classes provided by the SDK.