JCheck is a specification-based random testing tool that is loosely based upon the popular library QuickCheck for Haskell. It provides a custom JUnit runner for easy integration with JUnit and JUnit-tools.


Download binaries and source code from SourceForge. Please use the svn repository to get the latest improvements.


JCheck depends upon JUnit 4.5 (or, probably, any later version. JUnit 4.7 has also been tested.).

Getting Started

Using JCheck is almost as simple as using JUnit. With a few extra keystrokes you can use the full power of JCheck as well as JUnit.

If you haven't used JUnit before i recommend reading their (very short) JUnit Cookbook, learning how to use it first.

Read the JCheck tutorial.


API documentation.
The terms of the common public license used for JCheck.

JCheck Related Sites

A site for developers using JUnit.
QuickCheck Homepage
Home of the QuickCheck library which JCheck is inspired by.


JCheck is far from finished. It works, but to truly be easy to use in most situations some work needs to be done. Some of it is summarized in the list below:

Very useful, but sadly missing, the ability to easy replay failing test cases.
It would be great if one could minimize the failing test cases into as simple objects as possible.
More generators
Generators for collections and other much used objects.
More QuickCheck constructs
Trivial, collect and other would be nice to have

Get Involved

JCheck is forged on SourceForge. Please use the tools provided there to submit bugs, ask for enhancements or discuss jcheck in the forums.