Clean Test: a modern C++20 testing framework

Speaker: Philipp Ochsendorf

Audience level: [ Beginner | Intermediate ]

Automated software testing is probably the most important prerequisite for developing high-quality software quickly. Tests verify invariants during software development. This increases stability and improves efficiency of developers. In addition, proper testing makes it easier to collaborate on larger projects with well-defined, established components.

In this talk, we present "Clean Test": the C++ testing framework we wish had existed sooner. Clean Test implements a unique constexpr expression introspection mechanism that supports short-circuiting. The entire library has no dependencies, consists of standard C++20, and requires no macros. Clean Test is thread-safe and allows the simultaneous execution of any number of tests. The framework meets technical criteria of software engineers (e.g. Junit support, Unicode handling, runtime configurability). Any existing test can be converted to Clean Test using hackable and extensible migration utilities.