RapidCheck
- Android app
- Not listed
- Free plan
- No
- Runs on
- Linux, self-hosted, Windows

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 20Where 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
- github.com/emil-e/rapidcheck· checked 30 Sept 2026
- github.com/emil-e/rapidcheck/blob/master/doc/prope· checked 30 Sept 2026
- github.com/emil-e/rapidcheck/blob/master/doc/gener· checked 30 Sept 2026
- github.com/emil-e/rapidcheck/blob/master/doc/catch· checked 30 Sept 2026
- github.com/emil-e/rapidcheck/blob/master/doc/user_· checked 30 Sept 2026
- github.com/emil-e/rapidcheck/blob/master/LICENSE.m· checked 30 Sept 2026
