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.
