Skip to content

If you liked it then you "should have put a"_test on it, Beyonce rule

Photo of Scott Fredericksen
Hosted By
Scott F. and Jason T.
If you liked it then you "should have put a"_test on it, Beyonce rule

Details

Testing in C++ is not easy, it requires a lot of boilerplate code, macro usage and/or understanding of complicated testing frameworks. But it doesn't have to be like that. C++20 will enable us to reinvent the way we write tests.
If taking a glance into the future of testing in C++ piques your interest this session is for you.

In this case study, we will address the difficulty of testing with C++ by implementing a new,
fully functional, macro-free testing framework 1 from scratch with modern C++20 features.

The main goal will be to leverage modern C++ in order to make the following snippet compile and run:

01 import ut;
02
03 int main() {
04 "fib"_test = [] { // Running "fib"...
05 fib(7) == 12_i; // fib.cpp:5:FAILED [ 13 == 12 ]
06 }; // tests: 1 | 1 failed
07 } // asserts: 1 | 0 passed | 1 failed

The session will also focus on how to design modern testing facilities such as:

  • Case/Suite
  • Sections
  • Parameterized tests
  • Behaviour Driven Development (BDD)

At the end of this session, the audience will have a better understanding of C++20 features such as:

  • New additions to lambdas
  • User-Defined Literals (UDL)
  • Source Location
  • Concepts
  • Modules

As well as how and where to apply them.
Additionally, attendees will get familiar with a new, expressive way of testing with modern C++.

Photo of Denver C++ Meetup group
Denver C++ Meetup
See more events