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.