Future of Testing With C++20
summary
Claims a macro-free testing framework implemented in about 200 lines of C++20 that compiles and runs the example "\"hello world\"_test = [] { expect(12_i == fib(7)); }", then evolves into ut (about 2,000 LOC) as a single-header/module library using concepts, UDLs, immediate-invoke lambdas and source_location. Builds pass, colored failure messages include file and line, supports BDD, parameterized tests and a parallel runner in a few lines. Benchmarks show faster compile times and smaller binaries versus some older frameworks in the presented cases.
AI-written summary · about
chapters (27)
- 0:00Intro
- 0:30Agenda
- 5:57Motivation
- 7:04Negatives
- 9:51Frameworks
- 13:12Bolt Claim
- 14:55Testing Framework
- 18:30Implementation
- 21:35Modules
- 24:48Concepts
- 28:31Bend the test
- 30:46Test case name
- 33:13Issues
- 34:45Equality Operator
- 37:45Deduction Guide
- 38:51Error and Value
- 42:31UDL
- 43:50Lambda
- 46:21Unfold
- 48:36Source Location
- 50:09Print Errors
- 51:38Compile
- 52:17Value Location
- 54:12Testcpp
- 55:00Summary
- 56:02Expect
- 58:28Test Suite
related talks
01h 01m"unit"_test: Implementing a Macro-free Unit Testing Framework from Scratch in C++20
06mMacro-Free Testing With C++20
01h 03mClean Test: a modern C++20 testing framework
05m650 line C++ unit test library (easy to use)
01h 03mBack to Basics: Testing in C++
51mMix Tests and Production Code With Doctest...
01h 20mUnit Testing an Expression Template Library in C++20
31mTesting Compile-time Constructs in a Runtime Unit Testing Framework
