Core Concepts for Test-Driving Threads

In this chapter, you’ll work through an example that demonstrates a few core concepts around test-driving threads.

Separate threading logic from application logic. The best object-oriented design is one that separates concerns as much as possible. Your design for a multithreaded application should be no different. Threading is one concern, and your application logic is another. Keep them separate as much as possible and minimize their intermingling. Once again, small methods and classes are a best friend here (see Benefits of Small Methods).

Sleep is bad, m’kay? Pausing execution in a thread via sleep_for, in order to wait for a condition to be met, is a poor solution for many reasons. Test runs will be ...

Get Modern C++ Programming with Test-Driven Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.