Catch stands for C++ Automated Test Cases in Headers and is a
multi-paradigm automated test framework for C++ and Objective-C
(and, maybe, C). It is implemented entirely in a set of header
files, but is packaged up as a single header for extra convenience.
Key features:
- Really easy to get started. Just download catch.hpp,
#include it and you're away.
- No external dependencies. As long as you can compile
C++98 and have a C++ standard library available.
- Write test cases as, self-registering, functions or
methods.
- Divide test cases into sections, each of which is run
in isolation (eliminates the need for fixtures!)
- Use BDD-style Given-When-Then sections as well as
traditional unit test cases.
- Only one core assertion macro for comparisons.
Standard C/C++ operators are used for the comparison -
yet the full expression is decomposed and lhs and rhs
values are logged.