RapidCheck

C
C tier on Property-Based Testing ToolsScore 6.4 · #9 of 27
Android app
Not listed
Free plan
No
Runs on
Linux, self-hosted, Windows
github.com
The RapidCheck homepage

Summary

RapidCheck is a free C++ framework for property-based testing: it generates random inputs and runs specified properties to search for cases that disprove them. Developers provide properties as callables to rc::check, which repeatedly tests them with generated values. Built-in generators cover common types, and combinators can be used to create custom generators. Its arbitrary-value generation includes standard types such as vectors, maps, sets, tuples, pairs, strings, and chrono types. When a property fails, RapidCheck tries to shrink the input and report a smaller counterexample. It also supports stateful testing by generating valid operation sequences. Listed test-library integrations include Boost Test, Google Test, Google Mock, and Catch. By default, a property passes after 100 successful runs, and that count can be changed. RapidCheck uses CMake, can be added as a CMake subdirectory, and requires a C++11-compliant compiler. It is distributed under a BSD 2-Clause license. Its user guide is unfinished, and the API may change because it has not stabilized.

Who it is for

It suits C++ developers who want generated inputs and smaller counterexamples when testing properties. It may also fit projects that need stateful testing or integration with the listed test libraries.

What is good

  • Generates random inputs to challenge properties
  • Shrinks failures to smaller counterexamples
  • Includes generators for common STL types
  • Supports stateful operation-sequence testing
  • Integrates with several listed test libraries

What to know first

  • The user guide is still in progress
  • The API may change at any time
  • Requires a C++11-compliant compiler

Verdict

RapidCheck offers property-based and stateful testing with generated data, shrinking, and integrations for several test libraries. Its unfinished documentation and unstable API are important considerations for teams adopting it.

Compared on property-based testing tools

Free plan
Yesgithub.com
Supported languages
C++github.com
Test runner support
Boost Test, Google Test, Google Mock, Catch.hppgithub.com
Failing-case shrinking
Yesgithub.com
Stateful testing
Yesgithub.com
Reproducible failures
Yesgithub.com

Facts

What it does
RapidCheck is a C++ framework for property-based testing that generates random test data to find counterexamples to properties.github.com · 30 Sept 2026
Shrinking
When a property fails, RapidCheck tries to find the smallest failing test case and displays it as a counterexample.github.com · 30 Sept 2026
Property checks
Properties are implemented as callables passed to rc::check, and RapidCheck repeatedly calls them with generated inputs.github.com · 30 Sept 2026
Generators
RapidCheck includes generators for common types and combinators for building custom generators.github.com · 30 Sept 2026
STL support
Built-in arbitrary-value generation supports types including vectors, maps, sets, tuples, pairs, strings and chrono types.github.com · 30 Sept 2026
Integrations
The README lists integrations with Boost Test, Google Test and Google Mock.github.com · 30 Sept 2026
Catch integration
RapidCheck also documents basic integration with the Catch test library.github.com · 30 Sept 2026
Build requirements
RapidCheck uses CMake and requires a C++11-compliant compiler; the README lists Clang 3.5, GCC 4.9 and Visual Studio 2015 as CI compiler versions.github.com · 30 Sept 2026
Test defaults
A property passes by default after 100 successful tests, and the number is configurable.github.com · 30 Sept 2026
Limitations
The user guide says it is a work in progress, and the API has not stabilized and may change at any time.github.com · 30 Sept 2026
License
The project is distributed under a BSD 2-Clause license.github.com · 30 Sept 2026
Purpose
RapidCheck is a C++ framework for property-based testing inspired by QuickCheck and similar frameworks.github.com · 30 Sept 2026
Test generation
It generates random test data to search for inputs that falsify a property.github.com · 30 Sept 2026
Counterexamples
When it finds a failing case, RapidCheck tries to shrink it to a smaller counterexample.github.com · 30 Sept 2026
Features
The README lists imperative property definitions, test case shrinking, STL support including maps and sets, and combinators for creating generators.github.com · 30 Sept 2026
Requirements
RapidCheck uses C++11 and requires a compliant compiler.github.com · 30 Sept 2026
Build
RapidCheck uses CMake and can be added as a subdirectory to a CMake project.github.com · 30 Sept 2026
Documentation status
The User Guide says it is a work in progress and that some parts are still missing.github.com · 30 Sept 2026
API stability
The User Guide says the API has not stabilized and may change at any time.github.com · 30 Sept 2026

Best RapidCheck alternatives

See all 20

Where it ranks on Everything Xiaomi

Is RapidCheck yours?

Claim it for free: prove the domain, then correct facts, plans and screenshots. An editor reviews every change.

Sources